不使用random模块实现猜词游戏,如何让用户可以重新尝试答题?
猜词游戏代码修复方案
问题根因
你的代码存在两个核心逻辑错误,直接导致功能异常:
- 你提前把存储用户答案的变量
animal直接赋值为正确答案giraffe,导致while循环的判断条件animal != "giraffe"一开始就为假,循环根本不会触发 - 就算循环触发,你也没有在循环内加入获取用户新输入的逻辑,一旦进入循环就会无限打印错误提示
关于你提到的不使用random模块锻炼能力的思路完全合理,基础逻辑训练是熟练掌握编程的核心,不需要刻意依赖现成封装好的模块。
修复后的完整代码
print("你叫什么名字?") name = input() print("你好,%s!这是一个猜词游戏。" % name) print("想要开始请按回车键,不想玩可以直接退出") input() print("好的,看来你想继续!我们这就开始") print("什么动物生活在非洲,还有长长的脖子?") # 单独定义正确答案,和用户输入变量拆分 correct_answer = "giraffe" # 第一次获取用户输入的答案 user_answer = input() # 只要用户输入不等于正确答案,就循环提示重输 while user_answer != correct_answer: print("答错了!再试试吧。") # 循环内必须重新获取用户输入,更新判断条件 user_answer = input() # 跳出循环即说明答对,补充收尾提示 print("恭喜你答对了!")
逻辑说明
- 正确答案和用户输入的答案分开存储,避免赋值冲突
- 循环内必须更新用户输入的内容,否则判断条件永远不会变,必然陷入死循环
- 补充答对后的提示,整个游戏流程更完整
内容的提问来源于stack exchange,提问作者Ziolekx
相关产品推荐
相关产品推荐

