一、缺省参数=形参的默认值(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、