Python 函数大白话讲解!新手一次搞懂形参、*args、lambda
·
前言
开始学 Python 的时候,函数这块给我整懵了。 分不清形参实参,看不懂*args和**kwargs,匿名函数 lambda 也一头雾水。 今天用最简单的话来讲,不整难懂术语,代码全都能直接运行。
1. 到底什么是函数?
简单说:把重复要用的代码打包起来,想用的时候直接喊它,不用反复复制粘贴。
分成两种:
自带函数:print()、len(),Python 内置好,直接拿来用;
自定义函数:自己用def造。
def 函数名(参数):
# 这里写代码
return 结果
2. 形参和实参,最简单区分
def add(a, b):
return a + b
add(10, 20)
提醒: 如果你的函数里面只有 print,没写 return。调用这个函数的时候,它会偷偷返回一个None。 之前咱们代码打印多出一行 None,就是这个原因!
3. 四种参数类型,挨个看懂
参数顺序不能乱:位置参数 → 默认参数 → *args → **kwargs
① 位置参数
传入的数据按顺序挨个匹配,顺序不能乱。
def info(name, age):
print(name, age)
info("小王", 19)
② 关键字参数
info(age=19, name="小王")
位置参数必须写在关键字参数前面,不能混着乱写报错。
③ 默认参数
定义函数的时候直接给参数填好值,如果调用不传这个参数,自动用默认值。
def info(name, age=18):
print(name, age)
info("小李") # 不写age,自动age=18
info("小李",20) # 传了新数字,覆盖默认值
④ 可变参数 *args 和 **kwargs
def test(a, b=10, *args, **kwargs):
print(a)
print(b)
print(args)
print(kwargs)
test(1, 2, 3, 4, name="小明", gender="男")
运行结果: a=1,b=2,args=(3,4),kwargs={"name":"小明","gender":"男"}
4. 匿名函数 lambda
普通函数需要名字,lambda 不用,适合很短的一行逻辑。 语法: lambda 参数:表达式
# 普通函数
def add(x,y):
return x+y
# 等价lambda
f = lambda x,y:x+y
print(f(1,2))
限制: 只能写一行表达式,不能写循环、多行 if,复杂逻辑老老实实写 def。
5. return 到底干嘛的
把函数内部的数据传到外面;
一旦执行 return,函数直接结束,后面代码不再运行。
没有 return,默认返回None。
更多推荐


所有评论(0)