为什么不考虑输入都会引发错误?

时间:2019-06-08 15:12:18

标签: python python-3.x

我正在通过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。

2 个答案:

答案 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