为什么我得到“ ValueError:int()的无效文字,基数为10”。在此Python代码中?

时间:2018-07-13 11:00:59

标签: python oop

我是一个尝试提高Python技能的初学者。我发现了一个非常相似的问题,但是由于源代码不同,因此没有任何好处。这是问题的链接:ValueError: invalid literal for int() with base 10: '' 无论如何,这是我的代码:

correct_answer= 41
guess = int(input("Guess the number"))

if int(input()) == correct_answer:
print ("You found my number!")

if int (input()) >= correct_answer:
print ("My number is lower.")

if int (input()) <= correct_answer:
print ("My number is higher.")

else:
print ("You didn't write any numbers!")

在这里,我想编写一个简单的猜谜游戏。数字计算机记住的数字是41,用户必须在“猜测数字”之后猜测数字。如果用户的输入大于41,则程序将显示“我的数字较低”,如果用户的输入小于41,则程序将显示“我的数字较大”。 运行此代码时,我收到“ ValueError:int()的无效文字,基数为10:”

在此先感谢您帮助我解决此问题:)

2 个答案:

答案 0 :(得分:1)

问题在于您一次又一次地致电input()。每次您执行此操作时,程序都会期望输入,并且用户必须重新输入自己的猜测才能使程序按预期运行。将int(input())的所有实例(带有空提示)替换为guess,您将看到更合理的行为。例如

if guess == correct_answer:
    print ("You found my number!")

答案 1 :(得分:0)

尝试一下-

correct_answer= 41
guess = raw_input("Guess the number")
try:
    guess = int(guess)
except ValueError:
    print "Wrong value entered"

if guess == correct_answer:
    print ("You found my number!")
elif....

让我知道是否有帮助

当您接受输入时,如果有人输入字母或非整数的内容并尝试进行类型转换,则python会抛出ValueError

要捕获此类情况,我们使用try except块将其捕获。有关python try except in python

的更多信息

关于您的代码的指针对-

if int(input()) == correct_answer:

在这里,您仅调用input()函数,您的程序将无法运行,请使用变量guess,这是您输入的变量。

if int(input()) == correct_answer:
print ("You found my number!")

if int (input()) >= correct_answer: 
print ("My number is lower.")

if int (input()) <= correct_answer:
print ("My number is higher.")

请改用python的if elif elif else

此外,由于您已经将类型转换为整数,因此无需对每个if条件都执行此操作,就足够了-

if input > correct_answer,并且您不需要>=<=

>=表示大于或等于,但是您在第一个条件下已经处理过相等的情况,如果相等,它将被捕获,类似于小于或等于