命名空间:
内置命名空间:
python解释器一启动就可以使用的名字储存在内置命名空间
在启动器启动时被加载进内存里
全局命名空间:
程序从上到下被执行的过程中一次加载进内存
放置了我们所有设置的变量名和函数名
局部命名空间:
函数内部定义的名字
当函数调用时,才会产生这个名称空间,随着函数执行的结束,这个命名空间就消失了
匿名函数:
cale = lambda n,m : n**m
函数名 关键字 参数 函数体(返回值)
函数的参数:
形参:定义函数的参数
实参:调用函数的参数
函数的返回值:
返回多个值:
有多少返回值就用多少个变量接收
用一个变量接收得到的是一个元组
递归:
概念:
函数自调
最大递归深度:
998(包含第一次)—— python从内存角度出发做的限制
超出最大深度报的错误:
RecursionError: maximum recursion depth exceeded while calling a Python object
修改递归深度:(一般不用)
import sys
# sys.setrecursionlimit(10000)
n = 0
def story():
global n
n += 1
print(n)
story()
story()
注意:
1、如果递归的次数太大,就不适合用递归来解决问题;
2、递归的缺点:占内存
3、递归的优点:会让代码变简单
写递归函数的注意事项:
1、写递归函数必须要有结束条件
2、不要只看到return就认为已经返回了,要看返回操作是在递归到第几层发生的,然后返回给了谁?