Python 猜单词游戏:如何修复猜错后无法输出正确答案的问题
Python 猜单词游戏:修复猜错后无法输出正确答案的问题
以下是一个简单的 Python 猜单词游戏,它会随机打乱一个单词,并让用户猜出原始单词:
import random
ls = ['python', 'game', 'int', 'float', 'complex', 'string', 'list', 'tuple']
word1 = random.choice(ls)
word1 = list(word1)
word2 = ''.join(word1.copy())
random.shuffle(word1)
word1 = ''.join(word1)
print('打乱后的顺序为:' + word1)
print(word2)
word3 = input('请猜单词:')
i = 1
while i:
if word2 == word3:
print('恭喜你猜对了')
i = 0
else:
print('不好意思猜错了')
word3 = input('') # 这里修改代码,将新的猜测单词赋值给 word3
问题:
在上面的代码中,当猜错单词后,程序无法输出"恭喜你猜对了"。这是因为当用户猜错后,程序并没有将新的猜测单词重新赋值给 word3。因此,即使用户猜对了单词,程序也无法退出循环并输出"恭喜你猜对了"。
解决方案:
为了解决这个问题,需要在猜错单词后重新将新的猜测单词赋值给 word3。修改后的代码如下:
while i:
if word2 == word3:
print('恭喜你猜对了')
i = 0
else:
print('不好意思猜错了')
word3 = input('') # 在这里重新将新的猜测单词赋值给 word3
解释:
通过在猜错后重新赋值 word3,程序会继续等待用户输入新的猜测单词,直到猜对为止。这样,即使用户猜错多次,只要最终猜对了,程序就会退出循环并输出"恭喜你猜对了"。
改进后的代码完整示例:
import random
ls = ['python', 'game', 'int', 'float', 'complex', 'string', 'list', 'tuple']
word1 = random.choice(ls)
word1 = list(word1)
word2 = ''.join(word1.copy())
random.shuffle(word1)
word1 = ''.join(word1)
print('打乱后的顺序为:' + word1)
print(word2)
word3 = input('请猜单词:')
i = 1
while i:
if word2 == word3:
print('恭喜你猜对了')
i = 0
else:
print('不好意思猜错了')
word3 = input('')
现在,程序可以正常运行,即使用户猜错多次也能在猜对后输出正确的结果。
原文地址: https://www.cveoy.top/t/topic/pfZF 著作权归作者所有。请勿转载和采集!