return 两个作用: 1.返回值 2.结束函数的执行
局部变量的查询和访问的速度比全局变量快,优先考虑使用,尤其是在循环次数特别多的时候。
传递不可变对象:
int、float、字符串、元组、布尔值
浅拷贝和深拷贝:
浅拷贝拷贝父对象,不拷贝子对象
深拷贝全部拷贝完全独立
传递不可变对象使用的是浅拷贝
参数的几种类型
位置参数:
函数调用时,实参默认按位置顺序传递,需要个数和形参匹配,按位置传递参数,称为:位置参数。
默认值参数
默认值参数必须位于普通位置参数后面
命名参数
按照形参的名称传递参数
可变参数处理:
如:*c 为可变参数
* ,将多个参数收集到一个元组对象中
**,将多个参数收集到一个字典对象中
强制命名参数:
在带星号的“可变参数”后面增加新的参数,必须是“强制命名参数”。
r如:f1(*a,b,c)
f1(2,b=3,c=4)
lambda表达式和匿名函数:
只允许包含一个表达式,不能包含复杂语句。
f=lambda a,b,c: a+b+c
eval()函数:
功能:将字符串str当成有效表达式来求值并返回计算结果。
语法:eval(source[, globals[,locals]])->value
参数:
source:一个Python表达式或函数compile()返回的代码对象
globb:als:可选。必须是dictionary
locals:可选。任意映射对象
递归函数:
1.终止条件
2.递归步骤n步的值和n-1步关联