如何随机化答题选项并同步if-else逻辑?求Python代码优化
随机选项答题游戏代码完善
需求回顾
开发带有随机功能的小型答题游戏:
- 玩家输入
a1或a2对应选项作答 - 正确选项对应的
a1/a2不固定(比如“天空是蓝色”的正确选项随机分配给a1或a2) - 程序需判断答案是否正确并输出结果
原代码存在的问题
- 选项赋值逻辑错误:else分支中仅修改了
op1,但未给op2赋值,会导致后续判断出错 - 题目提示与随机逻辑脱节:当前打印的选项说明是固定的,没有根据随机分配的正确选项动态调整
- 用户输入是硬编码值,未实现真正的玩家输入交互
改进后的代码
import random # 定义题目和正确答案文本 question = "Is the Sky Blue ?" correct_answer = "Yes" wrong_answer = "No" # 随机分配正确选项对应的输入标识 correct_input = random.choice(["a1", "a2"]) wrong_input = "a2" if correct_input == "a1" else "a1" # 动态生成题目提示,告知玩家每个输入对应的选项 print(question) print(f"If {correct_answer} type `{correct_input}`") print(f"If {wrong_answer} type `{wrong_input}`") # 获取玩家输入 user_input = input("Please enter your answer: ").strip() # 判断答案并输出结果 if user_input == correct_input: print("Yeah that's right!") elif user_input == wrong_input: print("That's the wrong answer.") else: print("Invalid input! Please enter `a1` or `a2`.")
代码说明
- 随机分配正确选项:通过
random.choice直接确定正确输入标识,再推导错误输入,逻辑更简洁 - 动态提示:根据随机结果生成对应的选项说明,确保玩家看到的选项和实际正确对应关系一致
- 真实交互:使用
input()获取玩家输入,支持实时作答 - 输入校验:增加了无效输入的判断,提升游戏健壮性
内容的提问来源于stack exchange,提问作者dan969696
相关产品推荐
相关产品推荐

