python中的函数的分类

时间:2023-03-09 01:04:49
python中的函数的分类
函数分类:

    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)