我正在通过Python为所有人工作,而我被困在这个交汇处。在我看来,我已经指出,仅当“ num”不是整数时,才会引发ValueError。但是,当我运行代码时,无论输入如何,都会引发错误。谁能向正确的方向推我?
广泛地用谷歌搜索,但是我不太确定我应该用什么谷歌搜索...
largest = None
smallest = None
while True:
try:
num = input("Enter a number: ")
if num != int : raise ValueError
elif num == "done" : break
except ValueError:
print("Error. Please enter an integer or type 'done' to run the program.")
quit()
print("Maximum", largest)
print("Minimum", smallest)
即使输入为整数,代码也会始终引发ValueError。
答案 0 :(得分:2)
此行检查输入的字符串在字面上是否等于内置类型int
:
if num != int : raise ValueError
另一个问题是input()
函数总是返回一个字符串。因此,如果您想在用户输入数字以外的任何数字时提高ValueError
,只需执行以下操作:
inputted = input("Enter a number: ")
num = int(inputted) # raises ValueError when cannot be converted to int
答案 1 :(得分:2)
如果您想检查输入的字符串是否可以转换为int
,只需尝试一下:
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
num = int(num)
except ValueError:
continue