Skip to main content
 首页 » 编程设计

python之猜数字游戏,无法进行下一次猜测

2025年05月04日25Leo_wl

这是我的游戏概念,计算机随机生成一个 1-100 的数字,玩家必须猜测这个数字。如果他们猜测的数字更高或更低,计算机会告诉他们。

我添加了一些代码来确保用户输入的猜测是一个数字,但出于某种原因,它只对他们的第一次猜测有效。

import random 
 
x = random.randint(1, 100) 
guess = input("Guess the number") 
 
while guess.isnumeric() == True: 
 
    if x > int(guess): 
        print("Too low, guess again") 
        guess = input("Guess the number") 
 
    if x < int(guess): 
        print("Too high, guess again") 
        guess = input("Guess the number") 
 
    if x == int(guess): 
        print ("That is correct!") 
        break 
 
if guess.isnumeric() == False: 
        print("Please enter a valid number") 
        guess = input("Guess the number") 

我真不知道还能怎么解释。但是例如,如果我第一次猜测数字 20,它会根据随机生成的数字输出太高或太低,但在那之后,如果我输入一堆随机字母,它会给我一个错误,即猜测无法与随机生成的数字进行比较。

请您参考如下方法:

我已经为您修复了代码。试试这个:

import random 
 
x = random.randint(1, 100) 
 
while True: 
    try: 
        guess = int(raw_input("Guess the number: ")) 
    except ValueError: 
        print("Not a valid number, try again!") 
        continue 
 
    if guess < x: 
        print("Too low, guess again") 
 
    elif guess > x: 
        print("Too high, guess again") 
 
    elif x == guess: 
        print ("That is correct!") 
        break 

您不需要在每次猜测后提示用户输入,这就是第一个输入提示的用途。因为我们指定了 while True,所以用户每次都会收到输入数字的提示,除非他们输入了正确的数字,在这种情况下,我们打破无限循环.

此外,我们可以将输入语句放在 try block 中,因为我们就在那里将输入转换为整数。如果用户输入一个字符串,如果程序试图将其转换为整数,则程序会失败,但是如果我们 except ValueError: 然后 continue,我们将警告用户提示他们的输入无效,然后再次提示他们输入。