我是一个尝试提高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:”
在此先感谢您帮助我解决此问题:)
答案 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
,并且您不需要>=
或<=
。
>=
表示大于或等于,但是您在第一个条件下已经处理过相等的情况,如果相等,它将被捕获,类似于小于或等于