我有一个关于int()
的问题。我的部分Python代码如下所示
string = input('Enter your number:')
n = int(string)
print n
因此,如果int()
的输入字符串不是数字,Python将报告ValueError并停止运行其余代码。
我想知道是否有办法让程序重新询问有效的字符串?所以该计划不会停在那里。
谢谢!
答案 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来自这里。