答案判定器
小白自己捣鼓出来的小玩意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("错了")
以下是对您代码的分析与改进建议:
代码分析:
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]