如果输入无效输入,我不能继续循环程序

时间:2017-10-21 15:06:15

标签: python-3.x

我有这个程序:

number =  int(input('Contact Number:'))
def validatePhoneNumber(number):
    count = 0
    while True:
        while number > 0:
            number = number//10
            count = count+1
        if (count == 10) :
            break

        elif (count > 10) :
            print('Invalid phone number')
            return -1

        elif (count < 10):
            print('Invalid phone number')
            return -1

validatePhoneNumber(number)

它将如下所示:

Contact Number:1234
Invalid phone number
>>> 

我希望它继续循环,直到输入一个10位数字然后它将停止。

Contact Number:1234567890
>>> 

条件是如果数字丢失或无效,则返回-1。 我在程序中遗漏了什么吗? 感谢

1 个答案:

答案 0 :(得分:0)

这个怎么样:

number = input('Contact Number:')  # it's a str now, so we can use len(number)
def validatePhoneNumber(number):
    while len(number) != 10:
        number = input("Please enter a 10-digit contact number: ")
    return number

number = validatePhoneNumber(number)

这是一种更加pythonic的方法,因此更容易理解和调试。正如其他评论所指出的那样,领先的0现在不会被剥夺。