Форум сайта python.su
0
Всем привет. У меня есть проблема с исключениями в программе. У меня есть 3 переменных:
myphonenumber=input(“Введите номер телефона в формате +7XXXXXXXXXX”)
myphonenumber1=input(“Введите номер телефона в формате +7 XXX XXX-XX-XX”)
myphonenumber2=input(“Введите номер телефона в формате 7(XXX)XXX-XX-XX”)
Я написал вот такой код:
try:
myphonenumber=int(input(“Введите номер телефона в формате +7XXXXXXXXXX\n”))
except ValueError:
print(“”)
print(“Пожалуйста, введите корректный номер телефона.\nАдмин не несёт ответственности за вашу невнимательность!\n ”)
myphonenumber=int(input(“Введите номер телефона в формате +7XXXXXXXXXX\n”))
try:
myphonenumber1=int(input(“Введите номер телефона в формате +7 XXX XXX-XX-XX\n”))
except ValueError:
print(“”)
print(“Пожалуйста, введите корректный номер телефона.\nАдмин не несёт ответственности за вашу невнимательность!\n ”)
myphonenumber1=int(input(“Введите номер телефона в формате +7 XXX XXX-XX-XX\n”))
try:
myphonenumber2=int(input(“Введите номер телефона в формате 7(XXX)XXX-XX-XX\n”))
except ValueError:
print(“”)
print(“Пожалуйста, введите корректный номер телефона.\nАдмин не несёт ответственности за вашу невнимательность!\n ”)
myphonenumber2=int(input(“Введите номер телефона в формате 7(XXX)XXX-XX-XX\n”))
В итоге после ввода 3 переменной неправильной программу крашит
ValueError: invalid literal for int() with base 10: ''
Как сделать так, чтобы этого не было и как мне сделать через цикл так, чтобы программа выдавала о некорректном номере телефона, пока пользователь не введет его верно?
Офлайн
294
Dyushaя бы вместо true:int(…)-excerpt использовал как минимум, regexp для проверки валидности, как это делается, гуглиться с полпинка. пример https://habr.com/ru/post/110731/
как мне сделать через цикл так, чтобы программа выдавала о некорректном номере телефона, пока пользователь не введет его верно?
while True: myphonenumber=input('Введите номер телефона в формате ....') if re.mach(myphonenumber, phonenumber_pattern): break
[code python][/code]
Отредактировано PEHDOM (Июль 10, 2019 23:47:11)
Офлайн