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('')

现在,程序可以正常运行,即使用户猜错多次也能在猜对后输出正确的结果。

Python 猜单词游戏:如何修复猜错后无法输出正确答案的问题

原文地址: https://www.cveoy.top/t/topic/pfZF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录