当输入是字母而不是数字时,Python会说(ValueError:int()的文本无效,以10为底:“”)

当输入是字母而不是数字时,Python会说(ValueError:int()的文本无效,以10为底:“”),python,Python,当输入是字母而不是数字时,Python会给出错误值error:invalid literal for int,以10为基数: print('I am thinking of a number between 1 and 20') import random secretNumber = random.randint(1, 20) for guessesTaken in range(1, 7): print('Take a guess.') guess = int(input())

当输入是字母而不是数字时,Python会给出错误值error:invalid literal for int,以10为基数:

print('I am thinking of a number between 1 and 20')
import random
secretNumber = random.randint(1, 20)
for guessesTaken in range(1, 7):
    print('Take a guess.')
    guess = int(input())

    if guess < secretNumber:
        print('Your guess is too low.')
    elif guess > secretNumber:
        print('Your guess is too high.')
    else:
        break
if guess == secretNumber:
    print('Good job! You guessed my number in ' + str(guessesTaken) + 'guesses!')
else:
    print('Nope. The number I was thinking of was ' + str(secretNumber))

如果不是这样的数字,可以使用while循环不断请求输入

print('I am thinking of a number between 1 and 20')
import random
secretNumber = random.randint(1, 20)
guess = 0

for guessesTaken in range(1, 7):
    while (True):
        print('Take a guess.')
        guess = input()
        if (guess.isnumeric()):
            guess = int(guess)
            break
        else:
            print("Please enter a number")

    if guess < secretNumber:
        print('Your guess is too low.')
    elif guess > secretNumber:
        print('Your guess is too high.')
    else:
        break

if guess == secretNumber:
    print('Good job! You guessed my number in ' + str(guessesTaken) + 'guesses!')
else:
    print('Nope. The number I was thinking of was ' + str(secretNumber))

谢谢

您正在将输入转换为int,而没有任何错误检查。环绕猜测=在try/catch块中输入,或在while循环中清理输入。这就是应该发生的事情。以10为基数的整数中没有有效的字母,只有0到9。请参阅上的标准教程。或此?