如果您要求一个整数而不得到一个整数,那会有例外吗?

时间:2018-07-14 11:51:48

标签: python python-3.x int

我正在尝试制作一个您在其中输入整数的程序,但是如果您未输入整数,请处理该异常。但是,我在互联网上找不到整数的任何例外。

 public static string IfSelected(this HtmlHelper html, string action)
        {
            return html
                       .ViewContext
                       .RouteData
                       .Values["action"]
                       .ToString() == action
                            ? " active"
                            : "";
        }

- 如果您要求输入整数而不得到整数,有人知道吗?

3 个答案:

答案 0 :(得分:4)

是的,使用ValueError

有关python try except的更多信息。浏览builtin exceptions列表,这对您有帮助。

此外,当像这样引发内置exception时-

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'

你可以看到

ValueError: invalid literal for int() with base 10: 'a'

因此python引发ValueError,这是您需要使用的例外。

答案 1 :(得分:4)

您始终可以在解释器中尝试一下,以查看引发了哪些错误:

>>> int('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'

现在您知道它是ValueError,只需更改您的代码即可:

while True:
    try:
       i = int(input('Enter an INTEGER: '))
    except ValueError:
        print("You must enter an INTEGER, not any other format of data")
    else:
        break # to exit the while loop

答案 2 :(得分:1)

您可以使用“ ValueError”异常

while True:
try:
   i = int(input('Enter an INTEGER: '))
except ValueError:
    print("You must enter an INTEGER, not any other format of data")