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

Python中答错题目仍会增加分数的问题排查

你的问答游戏分数模块问题修复方案

嘿,我一眼就揪出问题所在啦!

核心问题:错误的条件判断逻辑

你写的if语句有个典型的语法逻辑错误:

if (bolivia == "La Paz" or "Sucre"):

在Python里,or需要连接两个完整的比较表达式。这里"Sucre"是一个非空字符串,会被Python自动判定为True——这就导致不管你输入什么内容,这个if条件永远会成立,所以哪怕答错了,程序也会执行“正确”的分支给你加分。

另外代码里还有个小拼写错误:You/re应该改成You're。

修正后的完整代码

这里给你两种正确的写法,选一种就行:

写法1:完整的比较表达式

score = 0
bolivia = input("Name a capital of Bolivia.")  # input本身就是字符串,不用额外转str()
if bolivia == "La Paz" or bolivia == "Sucre":
    print("Correct")
    score += 50  # 等价于score = score +50,写法更简洁
    print(score)
else:
    print("You're incorrect")
    input("Press enter to exit;)")

写法2:用in运算符更简洁

如果以后要加更多正确答案,这种写法更易维护:

score = 0
correct_capitals = ["La Paz", "Sucre"]
bolivia = input("Name a capital of Bolivia.").strip()  # strip()去掉输入前后的空格

if bolivia in correct_capitals:
    print("Correct")
    score += 50
    print(score)
else:
    print("You're incorrect")
    input("Press enter to exit;)")

额外优化建议

可以让程序忽略大小写,比如用户输入la paz或者SUCRE也能识别正确,只需要把输入转成统一格式:

bolivia = input("Name a capital of Bolivia.").strip().title()  # 转成标题大小写,比如"la paz"变成"La Paz"

内容的提问来源于stack exchange,提问作者user9785903

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:28:26