我们在定义函数的时候,如果不能确定参数有几个,可以使用星号(*)加上变量名的方式,来一次性收集多个传入的参数。使用这种方法拿到的多个参数,会被保存在一个元组里。
-
def 函数名(普通参数1,普通参数2,...,普通参数n,* 变长参数)
-
一次传入多个参数并保存在元组中
-
普通参数要放在不限个数的特殊参数之前
-
def 函数名(普通参数1,普通参数2,...,普通参数n,* 变长参数,** 字典参数)
- 一次传入多个参数并转换成字典
-
少用全局变量
- 对多个方法的代码块都有影响,不好排查问题
- 局部变量和全局变量的名称要避免冲突,否则会可能导致bug
-
递归:
- 函数循环地调用自己
- 要注意递归的退出条件
- 所有循环的代码都可以通过递归来实现
- 但是递归比循环用的场合少
- 递归占用资源多
- 循环更容易编写
- 斐波那契函数就适合使用递归编写
- 但是递归比循环用的场合少