3.3变量作用域
分类:按照作用域分类
- 全局(global): 在函数外部定义
- 局部(local):在函数内部定义
变量的作用范围:
- 全局变量:在整个全局范围都有效
- 全局变量在局部可以使用(即函数内部可以方位函数外部定义的变量)
- 局部变量在局部范围可以使用
- 局部变量在全局范围无法使用
LEGB原则
- L(Local)局部作用域
- E(Enclosing function locale)外部嵌套函数作用域
- G(Global module)函数定义所在模块作用域
- B(Buildin): python内置魔抗的作用域
提升局部变量为全局变量
- 使用global
- 案例
globals, locals函数
-
可以通过globals和locals显示出局部变量和全局变量
-
案例
-
eval()函数
-
把一个字符串当成一个表达式来执行, 返回表达式执行后的结果
-
语法:
eval(string_code, globals=None, locals=None)
exec()函数
- 跟eval功能类似, 但是,不返回结果
3.4递归函数
- 含税直接或者间接调用自身
- 优点:简洁,理解容易
- 缺点:对递归深度有限制,消耗资源大
- python对递归深度有限制,超过限制报错
- 在写递归程序的时候,一定注意结束条件
内置数据结构(变量类型)
- list
- set
- dict
- tuple
list(列表)
- 一组由顺序的数据的组合
- 创建列表
- 空列表
- 空列表