【Python8】匿名函数lambda、函数常用参数类型(必选参数、关键字参数、默认值参数、不定长参数)

0 可变与不可变

在这里插入图片描述

1. 参数


1.1 必选参数


  • 传入参数的值是按照顺序依次赋值给形参
def print_str(str):
    print(str)
    return
print_str('hello,sdsnzy!')

1.2 关键字参数


  • 为了避免位置参数严格的位置要求,调用参数时可以指定对应形式参数的名字,这是关键字参数,它甚至可以采用与函数定义时不同的顺序.
def f(x,y):
    print(x*y)
    return
f(y=2,x=3)
#输出6

1.3 默认值参数


  • 当调用方没有提供对应形式参数的值时,你可以指定默认形式参数值。
  • 如果提供实参,在调用时会代替默认值
def f(x,y=5):
    print(x*y)
    return
f(3)
#15
def f(x,y=5):
    print(x*y)
    return
f(3,9)
#27

1.4 不定长参数


  • 函数参数数目不确定

1)*:星号将一组可变数量的位置参数集合成参数值的元组

def countnum(a,*b):
    print(b)
    print(type(b))
countnum(1,2,3)

在这里插入图片描述

2)**:以字典形式存放

def countnum(a,**b):
    print(b)
    print(type(b))
countnum(1,x1=2,x2=3,x3=4)

在这里插入图片描述

2. 匿名函数


函数定义的另一种方法是用 lambda 表达式,它定义了一个匿名函数。lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号:,后面是一个表达式。作为表达式,lambda返回一个值。lambda 用来编写简单的函数,而def用来处理更强大任务的函数。

示例1:

#把lambda定义的匿名函数赋给函数result
result=lambda x,y,z:x*y*z
print(result(1,2,3))
#6

示例2:

result=lambda x,y,z=2:x+y+z
print(result(2,2,3)) # 7
print(result(2,2)) # 6

猜你喜欢

转载自blog.csdn.net/weixin_46069582/article/details/113729045