📖 知识点
1. 全局变量
定义在函数外面的变量,整个文件都能读取。
# 全局变量
name = "张三"
def say_hello():
# 函数内可以读取全局变量
print(name)
say_hello()
print(name)2. 局部变量
定义在函数内部的变量,仅函数内部可用,函数执行结束,变量销毁,外部访问会报错。
def test():
# 局部变量
num = 100
print(num)
test()
# print(num) # 报错!外部无法访问局部变量3. global 关键字
如果想在函数内部修改全局变量,需要先用 global 声明。
⚠️ 不写 global,函数内新建同名变量,只会创建一个局部变量,不会修改全局变量。
count = 0 # 全局变量
def add_count():
global count
count = count + 1
add_count()
print(count) # 输出1核心口诀
函数内读变量:优先找局部,局部没有再找全局
函数内修改全局变量:必须
global声明同名变量:局部变量会 “遮蔽” 全局变量
⚔️ Kata 实战任务
需求:
定义全局变量
money = 100,代表初始金币写函数
earn_money(),使用 global 修改全局变量,每次调用金币增加 50调用 earn_money () 2 次
最后打印最终金币数量
参考代码
# 全局变量
money = 100
def earn_money():
global money
money += 50
earn_money()
earn_money()
print(f"当前金币:{money}")运行输出:
当前金币:200🧠 思考题
如果去掉代码里的
global money,运行会发生什么?函数内部和外部写了同名变量,它们是同一个变量吗?
行者孙Python