使用int()时如何避免错误?

时间:2017-05-12 06:39:39

标签: python

我有一个关于int()的问题。我的部分Python代码如下所示

string = input('Enter your number:')
n = int(string)
print n

因此,如果int()的输入字符串不是数字,Python将报告ValueError并停止运行其余代码。

我想知道是否有办法让程序重新询问有效的字符串?所以该计划不会停在那里。

谢谢!

5 个答案:

答案 0 :(得分:2)

您可以使用try except

while True:
    try:
        string = input('Enter your number:')
        n = int(string)
        print n
        break
    except ValueError:
        pass

答案 1 :(得分:1)

将整个事物置于无限循环中。你应该捕获并忽略ValueError,但是当你得到一个有效的整数时就会突破循环。

答案 2 :(得分:0)

n = None
while not isinstance(n, int):
    try:
        n = int(input('Enter your number:'))
    except:
        print('NAN')

答案 3 :(得分:0)

您正在寻找的是

尝试/除外

工作原理:

try:
    # Code to "try".
except:
    # If there's an error, trap the exception and continue.
    continue

针对您的方案:

def GetInput():
    try:
        string = input('Enter your number:') 
        n = int(string) 
        print n
    except:
        # Try to get input again.
        GetInput()

答案 4 :(得分:0)

虽然其他人提到您可以使用以下方法,

try :
except :

这是另一种做同样事情的方法。

while True : 
    string = input('Enter your number:')
    if string.isdigit() : 
        n = int(string)
        print n
        break
     else : 
        print("You have not entered a valid number. Re-enter the number")

您可以了解更多信息   Built-in String Functions来自这里。