# 定义一个函数def func_name(参数): # 参数可选函数体return 返回值 # 可选
def关键字:函数定义的开始
函数命名:使用小写字母和下划线(func_name)
冒号和缩进:函数体必须缩进
return语句:返回结果,若无return则返回None
# 位置参数def greet(name, greeting):return f"{greeting}, {name}!"# 默认参数def greet(name, greeting="Hello"):return f"{greeting}, {name}!"# 关键字参数greet(greeting="Hi", name="Alice")# 可变参数def sum_all(*args): # 接收任意数量的位置参数return sum(args)def print_info(**kwargs): # 接收任意数量的关键字参数for key, value in kwargs.items():print(f"{key}: {value}")
# 单个返回值def add(a, b):return a + b# 多个返回值(实际上返回元组)def get_coordinates():x = 10y = 20return x, y # 等价于 return (x, y)# 无返回值def print_hello():print("Hello")# 隐式返回 None

a = int(3.14) # 内置作用域 Bb = 11 # 全局作用域 Gdef outer():C = 5 # 嵌套的父级函数的局部变量 Edef inner():d = 6 # 局部作用域 Lreturn 1
count = 10 # 定义一个全局变量def func():count = 5 # 定义了一个局部变量print(count)func() # 输出:5print(count) # 输出:10
count=10def func():global count # 对全局变量声明count=5print(count)func() # 输出:5print(count) # 输出:5
忘记冒号:def语句后必须有冒号
缩进错误:函数体必须正确缩进
参数顺序:位置参数必须在关键字参数之前
默认参数陷阱:默认参数应为不可变对象
# 错误的默认参数使用def append_to_list(item, my_list=[]): # 危险!my_list.append(item)return my_list# 正确的做法def append_to_list(item, my_list=None):if my_list is None:my_list = []my_list.append(item)return my_list
5.2 学习路径建议

从简单函数开始,如计算器函数
练习使用不同类型的参数
理解return和print的区别
尝试函数组合使用
示例代码:
def debug_function(x, y):print(f"输入: x={x}, y={y}") # 调试输出result = x * yprint(f"结果: {result}") # 调试输出return result