作为Python入门的核心知识点,函数是实现代码复用、逻辑解耦的关键。很多新手刚接触函数时,分不清"定义"和"调用"的区别,对参数传递更是一头雾水,导致写出来的函数要么报错,要么逻辑混乱。
今天就把Python函数拆解成"定义-调用-参数-返回值"四个核心模块,搭配极简代码示例,新手跟着练,10分钟就能掌握函数的基础用法,轻松写出可复用的代码~
一、函数的核心概念:为什么要用函数?
函数就像"预先封装好的工具"------把一段常用的代码逻辑包裹起来,需要时直接"调用",不用重复写相同代码。
比如:计算两个数的和,写一次求和函数,后续求任意两个数的和,直接调用即可,无需重复写a + b。
二、函数的基础:定义与调用(最核心!)
1. 函数定义(造工具)
语法格式:
Python
def 函数名(参数列表):
"""函数说明文档(可选,建议写)"""
函数体(要执行的代码)
return 返回值(可选)
-
def:定义函数的关键字(必须有); -
函数名:符合变量命名规范(小写+下划线),见名知意;
-
参数列表:调用函数时需要传入的数据(可选);
-
函数体:核心逻辑代码(缩进4个空格,和def对齐);
-
return:返回函数执行结果(可选,无return则返回None)。
2. 函数调用(用工具)
语法格式:函数名(传入参数)
调用才会执行函数体代码,只定义不调用,函数永远不会运行。
示例1:无参数、无返回值的函数
Python
# 定义函数:打印欢迎语
def print_welcome():
"""打印欢迎信息"""
print("欢迎学习Python函数!")
# 调用函数(必须调用才会执行)
print_welcome() # 输出:欢迎学习Python函数!
示例2:有参数、有返回值的函数
Python
# 定义函数:计算两个数的和
def add_num(a, b):
"""计算两个数的和,返回结果"""
result = a + b
return result # 返回求和结果
# 调用函数,接收返回值
sum1 = add_num(5, 3)
print(sum1) # 输出:8
sum2 = add_num(10.5, 20.3)
print(sum2) # 输出:30.8
三、函数的灵魂:参数传递(新手必懂4种参数)
参数是函数和外部交互的"接口",新手重点掌握4种常用参数,覆盖90%的使用场景。
1. 位置参数(最常用)
调用时按参数定义的顺序传入值,数量必须和定义一致。
Python
# 定义:参数a、b为位置参数
def print_info(name, age):
print(f"姓名:{name},年龄:{age}")
# 调用:按顺序传入"张三"(对应name)、20(对应age)
print_info("张三", 20) # 输出:姓名:张三,年龄:20
# ❌ 错误:参数数量不一致(少传/多传都会报错)
# print_info("李四") # 报错:缺少1个位置参数
2. 默认参数
定义时给参数赋值,调用时可省略该参数(使用默认值)。
Python
# 定义:age设置默认值18
def print_info(name, age=18):
print(f"姓名:{name},年龄:{age}")
# 调用1:省略age,使用默认值18
print_info("王五") # 输出:姓名:王五,年龄:18
# 调用2:传入age,覆盖默认值
print_info("赵六", 22) # 输出:姓名:赵六,年龄:22
💡 避坑:默认参数必须放在位置参数后面!
3. 关键字参数
调用时指定参数名,无需按顺序传入,适合参数多的场景。
Python
# 定义:3个位置参数
def print_info(name, age, gender):
print(f"姓名:{name},年龄:{age},性别:{gender}")
# 调用:指定参数名,顺序可乱
print_info(gender="男", name="孙七", age=25) # 输出:姓名:孙七,年龄:25,性别:男
4. 可变长度参数(*args、**kwargs)
处理"不确定数量的参数",新手常用在批量处理数据场景。
Python
# *args:接收任意数量的位置参数,打包成元组
def sum_all(*args):
total = 0
for num in args:
total += num
return total
print(sum_all(1,2,3)) # 输出:6
print(sum_all(10,20,30,40)) # 输出:100
# **kwargs:接收任意数量的关键字参数,打包成字典
def print_detail(**kwargs):
for key, value in kwargs.items():
print(f"{key}:{value}")
print_detail(name="周八", age=30, address="北京")
# 输出:
# 姓名:周八
# 年龄:30
# 地址:北京
四、函数的返回值:return的用法
-
return会终止函数执行(后面的代码不会运行); -
一个函数可以返回多个值(用逗号分隔,返回时自动打包成元组)。
Python
# 返回单个值
def get_max(a, b):
if a > b:
return a
else:
return b
print(get_max(10, 20)) # 输出:20
# 返回多个值
def get_info():
name = "吴九"
age = 28
return name, age # 等价于返回 (name, age)
name, age = get_info() # 解包接收
print(name, age) # 输出:吴九 28
五、新手避坑指南
-
函数名不能重复(重复定义会覆盖之前的函数);
-
缩进错误:函数体必须缩进(4个空格),否则报错;
-
参数传递:位置参数必须在关键字参数前面;
-
return位置:return写在循环/条件里时,注意是否提前终止函数。
最后
函数的核心是"复用"和"解耦",新手先掌握"定义-调用-位置参数-返回值"这四个基础点,再逐步学习默认参数、可变参数。练习时可以把之前写的代码(比如文本统计、密码生成)改造成函数,加深理解。