You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现积分统计?运行积分系统遇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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 08:43:12