未来的黑客-TK 发表于 5 天前

答案判定器

小白自己捣鼓出来的小玩意
import random
a = 2
b = 3
print("1 + 1 =?")
if random.randrange(1,3) == 1:
    print("A:",a)
    print("B:",b)
    d = 1
else:
    print("A:",b)
    print("B:",a)
    d = 2
s = input()
if s == "A":
    s = 1
if s == "B":
    s = 2
if s == d:
    print("对了")
else:
    print("错了")

FishC 发表于 5 天前

以下是对您代码的分析与改进建议:

代码分析:
1. 功能:随机交换答案选项位置(A/B),检测用户输入是否正确
2. 存在问题:
   - 只接受大写字母输入(输入小写会判错)
   - 未处理无效输入(如输入C/D等)
   - 变量命名可读性差(如a/b/d/s含义不直观)

改进建议:

import random

# 使用有意义的变量名
correct_answer = 2
wrong_answer = 3

print("1 + 1 =?")
# 生成随机选项布局
if random.choice():
    print(f"A: {correct_answer}")
    print(f"B: {wrong_answer}")
    correct_choice = "A"
else:
    print(f"A: {wrong_answer}")
    print(f"B: {correct_answer}")
    correct_choice = "B"

# 处理用户输入(不区分大小写)
user_input = input("请选择答案 (A/B): ").strip().upper()

# 判断结果
if user_input == correct_choice:
    print("对了!")
elif user_input in ("A", "B"):
    print("错了!")
else:
    print("无效输入,请输入A或B")


主要改进点:
1. 使用random.choice()替代random.randrange()更简洁
2. 变量名语义化(如correct_answer代替a)
3. 输入处理:
   - 自动转换大写.upper()
   - 去除空格.strip()
   - 增加无效输入检测
4. 使用f-string格式化输出更清晰
5. 添加明确的输入提示语

这个版本保留了原代码的核心逻辑,同时增强了健壮性和用户体验。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 答案判定器