ValueError:int() 的文字无效,以 10 为基数:而使用 None


rating = input("")
if (rating == None):
print("Please input a rating")
else:
rating = int(rating)
if (rating > 8):
print("this album is amazing")
else:
print("this album is ok")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Untitled-1.ipynb Cell 24' in <cell line: 3>()
4     print("Please input a rating")
6 else:
----> 7     rating = int(rating)
8     if (rating > 8):
9         print("this album is amazing")
ValueError: invalid literal for int() with base 10: ''

在尝试使用";无";为了识别输入上留下的空白,我得到了这个消息错误。有什么建议吗?

在不写任何东西的情况下尝试此代码:

print(type(input()))

程序打印:

<class 'str'>

因为函数input((在您不写任何内容时返回一个空字符串。你应该试试这个条件:

if (rating == ''):
print("Please input a rating")

此外,您还可以使用Python的内部机制,将None对象和空字符串视为False。这将适用于以下两种情况:

if not rating:
print("Please input a rating")

您需要的是使用try-except块来处理任何类型的错误,无论是作为用户输入的空格还是字符串。阅读更多关于如何在python 中使用Try/Catch的信息

试试这个。。

rating = input("Enter the rating: ")
while True:
try:
rating = int(rating)
if (rating > 8):
print("this album is amazing")
break
else:
print("this album is ok")
break
except:
rating = input("Enter the rating: ") 

最新更新