Python 函数入门:定义、参数与匿名函数
·
1. 函数定义与调用
使用 def 关键字定义函数,函数体缩进书写。
def my_print():
"""打印1~5"""
for i in range(1, 6):
print(i)
my_print() # 调用
带参数的函数:
def my_print(start, stop, msg):
for i in range(start, stop):
print(i, msg)
my_print(1, 6, "好饿呀")
2. 返回值 return
函数通过 return 返回结果,一旦执行 return,函数立即结束。
def get_total(a, b):
total = 0
for i in range(a, b+1):
if i % 2:
total += i
return total
print(get_total(10, 50)) # 输出 10~50 奇数和
可以返回多个值,本质是返回一个元组:
def test():
return 100, "hello", [1,2,3]
r = test()
print(r) # (100, 'hello', [1, 2, 3])
3. 参数类型详解
3.1 位置参数与关键字参数
-
位置参数:按顺序传递。
-
关键字参数:通过
形参名=值传递,顺序可调。
def my_max(a, b):
return a if a > b else b
print(my_max(1, 2)) # 位置参数
print(my_max(b=1, a=2)) # 关键字参数
3.2 默认参数
给形参设定默认值,调用时可省略。
def my_print(msg, n=1):
for i in range(n):
print(msg)
my_print("醒醒啦", 10) # 打印10次
my_print("下课啦") # 默认打印1次
注意:默认参数必须放在位置参数之后。
3.3 可变参数 *args 和 **kwargs
-
*args接收任意多个位置参数,打包为元组。 -
**kwargs接收任意多个关键字参数,打包为字典。
def show(*args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
show(10, 20, 30, a=1, b=2)
# args: (10, 20, 30)
# kwargs: {'a': 1, 'b': 2}
3.4 解包传参
-
用
*解包列表/元组作为位置参数。 -
用
**解包字典作为关键字参数。
def add(a, b, c):
return a + b + c
nums = [10, 20, 30]
print(add(*nums)) # 60
data = {"name": "小明", "age": 20, "addr": "郑州"}
def greet(name, age, addr):
print(f"{name} {age}岁 {addr}")
greet(**data) # 小明 20岁 郑州
4. 匿名函数 lambda
lambda 只能写单行表达式,自动返回结果,适合简单场景。
# 无参无返回值
f1 = lambda: print(888)
f1()
# 有参有返回值
f2 = lambda x, y: x + y + 100
print(f2(100, 200)) # 400
# 立即调用
print((lambda x, y, z: x + y + z)(10, 20, 30)) # 60
lambda 常用于 sorted()、filter()、map() 等高阶函数。
更多推荐
所有评论(0)