如果你想在函数内部修改一个全局变量,你需要使用 global
关键字来声明你正在引用的是全局作用域中的变量。
以下是一个示例代码,展示了如何使用 global
关键字来管理一个表示剩余烘烤时间的全局变量,并通过函数来重置烘烤时间和延长烘烤过程。
# 常量定义
DEFAULT_EXPECTED_BAKE_TIME = 40 # 预设的默认烘烤时间
BAKE_TIME_INTERVAL = 15 # 每次烘烤时间减少的间隔
def reset_bake_time():
global remaining_bake_time # 声明即将修改的是全局变量remaining_bake_time
remaining_bake_time = DEFAULT_EXPECTED_BAKE_TIME # 重置剩余烘烤时间为默认值
def bake_longer():
global remaining_bake_time # 同样声明操作的是全局变量
remaining_bake_time -= BAKE_TIME_INTERVAL # 每调用一次,烘烤时间减少15分钟
remaining_bake_time = 0 # 初始化全局变量remaining_bake_time
reset_bake_time() # 初始设置烘烤时间
print(f"开始烘烤,预计{remaining_bake_time}分钟...")
# 循环检查并减少剩余烘烤时间,直到时间小于零
while remaining_bake_time >= 0:
bake_longer()
print(f"~ 剩余烘烤时间: {remaining_bake_time}分钟")
# 如果烘烤时间变为负数,说明烘烤过头了
if remaining_bake_time < 0:
print(f"哎呀!你多烤了{-remaining_bake_time}分钟!")
这段代码的输出结果是:
开始烘烤,预计40分钟...
~ 剩余烘烤时间: 25分钟
~ 剩余烘烤时间: 10分钟
~ 剩余烘烤时间: -5分钟
哎呀!你多烤了5分钟!