Python中的全局变量和局部变量
-
全局变量是定义在函数外的变量
即从定义变量的位置到本源文件结束都有效。
-
局部变量是定义在函数内的变量
即在一个函数内部定义的变量,只在本函数范围内有效。
由下面的小案例来说明:
# 全局变量,能被当前文件中所有python代码访问[先声明,后赋值]
users = "admin"
# 普通代码的使用
print("普通代码:",users)
# if结构中使用
if 1:
print("if结构中使用", users)
# 循环结构中使用
while 1:
print("循环结构中使用", users)
break
# 函数中使用
def test_a():
# 声明一个test_a()函数中的局部变量
phone = "小米 mix3"
print("test_a中访问test_a局部变量:", phone)
print("test_a访问全局变量:", users)
# 执行函数
test_a()
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
打印效果如下:
普通代码: admin
if结构中使用 admin
循环结构中使用 admin
test_a中访问test_a局部变量: 小米 mix3
test_a访问全局变量: admin
在函数内使用global保留字可使用全局变量
当局部变量为组合数据类型且未创建,等同于全局变量。
# 定义了两个全局变量
name = "tom"
fav = ["LoL"]
# 1. 修改全局变量的数据: 全局变量是一个字符串
def test_str():
'''修改字符串数据'''
# 如果要修改全局变量的数据: 声明可以修改
global name ----------------------------------->>>> #如果不用global的话,就不能对全局变量进行修改,相当于把原来的变量放在了内存中,先不使用它,覆盖掉了
# 查看全局变量的数据
print("全局变量:", name)
# 修改全局变量的数据
name = "jerry"
print("name:", name)
print("test_str执行之前", name)
test_str()
print("test_str执行之后", name)
# 2. 修改全局变量的数据, 全局变量是一个列表
def test_list():
print("全局变量的数据fav:", fav)
# 修改list数据
fav.append("PUBG")-------------------------------->>>>这个只是在列表里边添加数据
print("全局变量的数据fav:", fav)
test_list()
print("普通代码中全局变量fav:", fav)
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
打印效果如下:
test_str执行之前 tom
全局变量: tom
name: jerry
test_str执行之后 jerry
全局变量的数据fav: ['LoL']
全局变量的数据fav: ['LoL', 'PUBG']
普通代码中全局变量fav: ['LoL', 'PUBG']
永远不要因为自己的懒惰,眼睁睁看着机遇从自己面前溜走。
坚持不一定是胜利,但不坚持、整天自怨自艾肯定会后悔。