1.可变类型与不可变类型[记住面试常考]
-
根据内存中的数据是否允许修改,将数据类型分为可变类型与不可变类型
-
简单理解: 不使用等号,能不能修改数据值
-
可变类型: 可以修改 →助记:常规容器
- 列表(list) list.append()
- 字典(dict ) dict.pop()
- 集合(set)
-
不可变类型: 不允许修改 →助记:bfsit(男朋友坐着不许跑)
- 数字类型(int, float , bool)
- 字符串(str)
- 元组(tuple)
2.局部变量和全局变量
-
根据变量定义的位置区分
-
局部变量
1,在函数内部定义的变量,称为是局部变量
2, 特点
-
2.1 局部变量,只能在当前函数内部使用
-
2.2 可以在不同函数内定义名字相同的局部变量
3, 生命周期(使用范围)
-
3.1 在函数执行(调用)的时候被创建
-
3.2 函数执行结束被销毁(删除)
4, 形参可以认为是局部变量
5, 如果想要在函数外部使用局部变量的值, 使用 return 返回
-
-
全局变量
1, 在函数外部定义的变量
2, 特点
- 2.1 全局变量可以在任意函数内访问(读取)
- 2.2 想要在函数内部修改全局变量的引用,需要使用 global 关键字声明(使用 global 关键字可以声明为全局变量)
- 2.3 如果在函数内部出现和全局变量名字相同的局部变量,在函数内部使用的是局部变量
3, 生命周期
- 代码执行的时候创建, 执行结束销毁
-
# 定义全局变量 g_num = 10 def func_1(): print(g_num) # 使用全局变量 def func_2(): g_num = 20 # 定义局部变量 print(g_num) def func_3(): global g_num # 声明为全局变量 g_num = 30 print(g_num) if __name__ == '__main__': print(g_num) # 10 func_1() # 10 func_2() # 20 func_1() # 10 print(g_num) # 10 func_3() # 30 修改了全局变量, 将全局变量的值改为30 了 func_1() # 30 g_num = 100 func_1() # 100 修改全局变量的值 func_2() # 20 局部变量 func_3() # 30 func_1() # 30