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

如何用Python搭建性格测试分数统计系统并修复多变量计分异常

问题修复方案

问题根源

  • 未存储用户输入结果:仅在首个if判断时调用了input()获取用户输入,没有将输入值存入变量,后续elif判断中直接将Python内置函数input和字符串做比对,永远不会匹配成功。
  • 逻辑遗漏:当前代码仅覆盖了a、b两个选项的判断,缺少c、d对应fantasy、academia的加分逻辑。

修复后的可运行代码

# 美学分数初始化
dark = 0
basic = 0
fantasy = 0
academia = 0

# 先获取用户输入并存入变量
user_choice = input("""
Choose a color scheme!
a  Black, Grey, Purple
b  Blue, Pink, White
c  Green, Grey, Yellow
d  Brown, Red, Orange
>> """)

# 基于存储的输入值做判断
if user_choice == "a":
    dark += 1
elif user_choice == "b":
    basic += 1
elif user_choice == "c":
    fantasy += 1
elif user_choice == "d":
    academia += 1

# 测试打印分数验证结果
print(f"当前分数:dark={dark}, basic={basic}, fantasy={fantasy}, academia={academia}")

多问题扩展优化建议

如果后续要增加更多测试题,推荐用字典存储分数,代码会更简洁易维护,示例逻辑如下:

# 用字典统一管理分数,新增维度无需单独声明变量
score = {
    "dark": 0,
    "basic": 0,
    "fantasy": 0,
    "academia": 0
}

# 可以把所有题目存在列表里批量遍历出题
questions = [
    {
        "prompt": """
Choose a color scheme!
a  Black, Grey, Purple
b  Blue, Pink, White
c  Green, Grey, Yellow
d  Brown, Red, Orange
>> """,
        "mapping": {"a": "dark", "b": "basic", "c": "fantasy", "d": "academia"}
    }
    # 后续新增题目直接在列表里加元素即可
]

for q in questions:
    choice = input(q["prompt"]).strip()
    if choice in q["mapping"]:
        score[q["mapping"][choice]] += 1

print("最终分数结果:", score)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:36:03