如何循环try和除ValueError代码,直到用户输入coorect值?

时间:2016-09-17 11:38:12

标签: python python-3.x

我有这段代码:

try:
    phone = int(input("Enter your telephone no. : "))
except ValueError:
    print("You must enter only integers!")
    phone = int(input("Enter your telephone no. : "))

我希望用户输入他们的电话号码。但如果他们输入除整数之外的任何其他内容,则会出现一条错误消息,指出您只能输入整数。我想要做的是循环代码的这一部分,以便每次用户输入非整数值时都会出现错误消息。到目前为止,所有这些代码都是,它只是第一次打印错误消息。如果用户第一次输入非整数值,程序就会中断。

请提供一个不太复杂的解决方案......我只是一个初学者。 我认为你打算使用while循环,但我不知道怎么做?

2 个答案:

答案 0 :(得分:2)

我认为最好的方法是将它包装在一个函数中:

def getNumber():
    while True:
        try:
            phone = int(input("Enter your telephone no. : "))
            return phone
        except ValueError:
            pass

答案 1 :(得分:1)

你可以像这样使用while循环

while True:
    try:
        phone = int(input("Enter your telephone no. : "))
    except ValueError:
        print("You must enter only integers!")
    else:  # this is executed if there are no exceptions in the try-except block
        break  # break out of the while loop