函数分类:
1 不带参函数
2 带参函数
默认带参函数
关键字参数
可变参数
字典参数
3 递归函数
4 匿名函数
1-1 不带参数函数
表示该函数不需要传递参数
def func():
print("hello world!")
2-1 默认带参函数
表示该函数自带赋值了的参数,如果不传,则使用该函数的,如果传入新值,则替换函数中的值
def text(a,b=2)
print("haha")
print(a)
print(b)
ret = text(1)
print(ret)
2-2 关键字参数
表示传递参数的时候不需要分谁先传谁后传,有相对应的关键字形参进行绑定
def text1(a,b,m):
print(a)
print(b)
print(m)
ret = text1(m=2,a=1,b=3)
2-3 可变参数
表示该参数中可以传入任意多个值
def text2(a,*args):
print(a)
print(args)
ret = text2(1,3,5,8)
2-4 字典参数
表示传递参数时是以字典数据格式进行传递的
def text3(a,b,**kwargs):
print(a)
print(b)
print(kwargs) ret = text3(a =1,b =2,c=5,d=8,f=10)
3 - 1 递归函数
最大调用深度为1000次(中包含了入口函数)
满足递归函数的条件
a.必须有结束条件的标识
b.自己调用自己 def sum1(num):
if num == 1:
return 1
return sum1(num-1) + num ret = sum1(10)
print(ret)
4-1 匿名函数
# 方式一
add = lambda a, b: a + b
print(add(3, 4))
# 方式二
#add = (lambda a,b:a+b) (3,4)
add = (lambda a, b: a + b)(3, 4)
print(add)
# 参数
# 无参数
add = (lambda:100)()
print(add) # 多个返回值需要手动组包
# f1,f2 = lambda:3,4() 此为lambda未组包的表达式需要手动组包后才能往下进行
f1, f2 = (lambda: (3, 4))()
print(f1)
print(f2) # 存储模型
f4 = (lambda: ())()
f5 = (lambda: (i for i in range(10)))()
f6 = (lambda: [i for i in range(10)])()
f7 = range(10)
print(f4,f5,f6,f7)