弗兰的悲惨之旅
99.73M · 2026-04-04
这篇笔记将带你深入理解 Python 的核心——函数。函数不仅能减少重复代码,还能让你的程序结构清晰、易于维护。
函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。
使用 def 关键字来定义函数。
def greet(name):
"""
这是一个文档字符串(Docstring),用于解释函数的功能。
打印问候语。
"""
print(f"你好, {name}!")
# 调用函数
greet("Jojo")
Python 的参数系统非常灵活,这是它的强大之处。
调用时必须按照定义的顺序传入。
def describe_pet(kind, name):
print(f"我有一只{kind},它的名字叫{name}")
describe_pet("小狗", "旺才")
为参数提供默认值。如果调用时不传,则使用默认值。
def greet(name, msg="早上好"):
print(f"嘿 {name}, {msg}")
greet("Alice") # 嘿 Alice, 早上好
greet("Bob", "晚安") # 嘿 Bob, 晚安
通过 参数名=值 的形式调用,顺序可以颠倒。
describe_pet(name="大白", kind="猫")
*args 和 **kwargs)当你不知道会传入多少个参数时:
*args: 接收任意数量的位置参数,打包成一个元组 (tuple)。**kwargs: 接收任意数量的关键字参数,打包成一个字典 (dict)。def make_pizza(size, *toppings, **info):
print(f"制作一个 {size} 寸的披萨,配料有: {toppings}")
print(f"订单信息: {info}")
make_pizza(12, "芝士", "香肠", "蘑菇", customer="张三", address="北京")
函数不仅可以执行操作,还可以返回结果。
return 语句。return,函数默认返回 None。def get_sum_and_avg(scores):
s = sum(scores)
a = s / len(scores)
return s, a # 返回多个值
total, avg = get_sum_and_avg([80, 90, 100])
global 关键字: 如果想在函数内部修改全局变量,需要使用 global(慎用!)。对于只有一行逻辑的简单函数,可以使用 lambda。
语法:lambda 参数: 表达式
# 计算平方的匿名函数
square = lambda x: x**2
print(square(5)) # 25
# 在排序中使用
pairs = [(1, 'one'), (2, 'two'), (3, 'three')]
pairs.sort(key=lambda pair: pair[1]) # 按字母顺序排序
snake_case(小写字母加下划线),如 calculate_total_price。