我有这个程序:
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。 我在程序中遗漏了什么吗? 感谢
答案 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现在不会被剥夺。