十三、1、函数扩展—缺省参数(形参的默认值)、不定长参数、*args **kwargs 、(重点)元组字典的特殊情况、可变不可变类型、匿名函数

一、缺省参数=形参的默认值(2个名字都得记得)

没有参数传递的使用默认值,有传递参数的使用传递值,不用默认值。

总结:如果函数的参数有默认值的时候,在调用该函数的时候,如果没有传递该默认值的参数,那么就使用默认值的数值,如果传递了该默认值的参数,就使用你所传递的那个值。

(1)

(2)注意事项:一般缺省参数和命名参数都需要放在所有参数的最后,前面的参数进行一一对应起来。

二、不定长参数

1、*args 不定长参数,想传几个传几个参数(args可换其他名,但行业上一般默认*args这个名字)

2、输出的结果为元组,(注意,只有一个数时,千万别忘了加,号 例如:(33,))

3、*args可不传数,得到空的元组()

2、注意:*args可不传数,得到空的元组(),但实参和形参要对应,不然报错

三、**kwargs ——可得到输出结果字典,没有传参数,输出结果空字典

总结:传递参数的时候不带变量名的通通给了args,带变量名的给了kwargs。

1、

2、没有传递的参数,输出空字典

3、混合使用

四、(重点)元组、字典的特殊情况

1、由于A、B没有变量名,所有传递的参数都给了*args

2、改进,如果想分开,需要进行拆包:分别加上*A **B(一个*的*A把参数传递给了*args ,两个*的**B把参数传递给了**kwargs)

五、不可变、可变类型

python中不可变的数据类型为:数字、字符串、元组。——可以作为键

python中可变的数据类型为:字典和列表。 ——不可作为键

六、变换变量的方法(python中简单方法)面试题

#使a,b的值交换 ——python中简单方法

七、匿名函数 lambda

格式:lambda 参数:式子

有名变量和匿名变量:

能看明白这两种的区别了吗?

一个必须写return 一个可以不用写return;

一个形式特别简单的使用的是匿名函数,一个形式比较复杂的使用的是def这种形式;

Lambda函数能接收任何数量的参数但只能返回一个表达式的值;

匿名函数不能直接调用print,因为lambda需要一个表达式。

1、

2、在python2和python3环境中运行会不同,会报错,在python3交互环境中,加个eval转化一下

3、

经验分享 程序员 微信小程序 职场和发展