Найти - Пользователи
Полная версия: Проблема с исключениями.
Начало » Python для новичков » Проблема с исключениями.
1
Dyusha
Всем привет. У меня есть проблема с исключениями в программе. У меня есть 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: ''

Как сделать так, чтобы этого не было и как мне сделать через цикл так, чтобы программа выдавала о некорректном номере телефона, пока пользователь не введет его верно?
PEHDOM
Dyusha
как мне сделать через цикл так, чтобы программа выдавала о некорректном номере телефона, пока пользователь не введет его верно?
я бы вместо true:int(…)-excerpt использовал как минимум, regexp для проверки валидности, как это делается, гуглиться с полпинка. пример https://habr.com/ru/post/110731/
А общий принцип вот такой..
 while True:
   myphonenumber=input('Введите номер телефона в формате ....')
   if re.mach(myphonenumber, phonenumber_pattern):
        break
А вообще тут вопрос неоднозначный, есть мнение что номера телефонов вообще не нужно проверять на валидность, но это сильно зависит от того для чего они вам нужны.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB