如何实现积分统计?运行积分系统遇UnboundLocalError报错求助
解决积分系统的UnboundLocalError报错并实现积分统计
我来帮你搞定这个问题!你遇到的UnboundLocalError是因为Python函数内部默认会把你修改的变量当成局部变量,但你在函数里直接修改了全局的teambc和teamac却没提前声明,导致Python找不到它们的局部定义。另外你的代码还有缩进和格式问题,我一起帮你修正了,下面是完整的解决方案:
修正后的完整代码
# 初始化两队积分 teambc = 0 teamac = 0 def bst_q(question, answer): # 声明要修改的全局变量 global teambc, teamac rq = input(str(question)) if rq == answer: print('Correct, Well done') teambc += 1 else: print('wrong. Team A now') rq = input(str(question)) if rq == answer: print('Correct, Well done') teamac += 1 else: print('wrong. Both Wrong!') # 调用答题函数 bst_q('What is 13 times 2?','26') # 展示最终积分 print(f"Team B积分: {teambc}") print(f"Team A积分: {teamac}")
关键修改说明
- 声明全局变量:在函数开头加上
global teambc, teamac,告诉Python这两个变量是在函数外部定义的全局变量,这样函数内部就能正常修改它们的值了,这是解决UnboundLocalError的核心。 - 修正代码格式:原代码里
teambc = 0 teamac = 0没有换行,函数内的条件分支缩进也不规范,我调整后让代码结构更清晰,避免逻辑错误。 - 添加积分统计展示:调用答题函数后,通过
print语句输出两队的最终积分,完成你需要的积分统计功能。
你可以直接运行这段代码测试,现在不仅不会报错,还能清晰看到两队的积分情况啦!
内容的提问来源于stack exchange,提问作者A.Salihu
相关产品推荐
相关产品推荐

