猜字母游戏程序异常求助:输入正确字母仍判定错误
修复「猜字母」游戏的判定问题
嘿,我帮你找出问题所在啦!你的代码现在有两个关键问题,导致正确输入被误判成错误:
1. 错误的比较逻辑
你现在是把单个输入的字母(转小写后)直接和整个letters元组做相等比较——这就像拿一颗葡萄和一篮水果比,永远不可能匹配成功。正确的逻辑应该是检查输入的字母是否存在于正确字母列表里。
2. 循环中没有更新输入变量
while循环里的第二次及后续输入,没有把新输入的值重新赋值给guess变量,导致循环一直用第一次的输入值做判断,哪怕后面输入正确也跳不出循环。
修复后的完整代码
letters = ("M","K","O","W","X","S","A") guess = input("Guess a letter: ") # 检查输入的小写字母是否不在正确字母的小写集合中 while guess.lower() not in (letter.lower() for letter in letters): print("Incorrect!") # 将新输入的值赋值给guess,更新判断变量 guess = input("Guess a letter: ") # 循环退出即说明输入正确,直接打印结果 print(guess,"is correct!") input("Press Enter to Continue")
额外优化小建议
你也可以提前把正确字母转成小写集合,集合的查找效率比元组更高:
letters = {"m","k","o","w","x","s","a"} # 用集合替代元组,查找更快 guess = input("Guess a letter: ") while guess.lower() not in letters: print("Incorrect!") guess = input("Guess a letter: ") print(guess,"is correct!") input("Press Enter to Continue")
内容的提问来源于stack exchange,提问作者codestudent
相关产品推荐
相关产品推荐

