Python全局变量使用疑问:为何count自增后输出仍为0?
问题分析与解决
你的代码有三个核心问题导致count始终输出0:
- 函数
running_count内部未声明count为全局变量,此时函数里的count是局部变量,修改它不会影响全局的count。 - 你定义了函数但从未调用过它,函数里的计数逻辑根本没执行。
- 代码里的
low、mid、high未定义,运行时会触发NameError,得先给这些变量赋值。
修正后的代码
count = 0 # 先定义low、mid、high的具体值,示例赋值如下 low = 1 mid = 2 high = 3 card = low def running_count(): global count # 声明使用全局变量count if card == low: count += 1 elif card == high: count -= 1 # card等于mid时count不变,该分支可省略 running_count() # 调用函数执行计数逻辑 print(count) # 此时输出1
关键说明
- 加
global count声明后,函数内部才会操作全局的count变量,而不是创建新的局部变量。 - 必须调用
running_count()才能让计数逻辑生效,否则函数只是定义了但没执行。 - 冗余的
elif card == mid:分支可以删除,因为count值不变,没必要写。
内容的提问来源于stack exchange,提问作者dane w
相关产品推荐
相关产品推荐

