Найти - Пользователи
Полная версия: Исключения. Методы try...except
Начало » Python для новичков » Исключения. Методы try...except
1
saveleva2003
Помогите, пожалуйста, разобраться с исключениями на примере этой задачи, без исключений решила, но с ними не понимаю, как.

Напишите программу, проверяющую корректность введенного номера сотового телефона в РФ по следующим критериям:
Номер может начинаться как с +7, так и с 8
Допускается любое количество любых пробельных символов в любом месте, например, +7 905 3434 341.
Допускается наличие в любом месте одной пары скобок (обязательно пары), например: 8 (905) 3434 341.
Допускается наличие любого количества знаков -, только не подряд (–), не в начале и не в конце. Например, +7 905-34-34-341.
Если введенный номер корректен, он преобразуется к формату +79053434341. То есть 8 заменяется на +7, а все другие символы-НЕцифры убираются. В итоговой записи остается 11 цифр.
Если же номер не удовлетворяет перечисленным условиям, выводится слово error.

Пример 1
Ввод
+7(902)123-4567
Вывод
+79021234567
Пример 2
Ввод
8(902)1-2-3-45-67
Вывод
+79021234567
Пример 3
Ввод
504))635(22))9 9
Вывод
error
Пример 4
Ввод
8–9019876543-22-3–4
Вывод
error

Ниже прикреплено мое решение без исключений.
py.user.next
saveleva2003
без исключений решила
saveleva2003
Допускается наличие в любом месте одной пары скобок
Вот такие номера пропускает твой код
+7(902)75(123)45
+7()9027512345
И такие номера пропускает
+79027512345x
+790275++12345+++
Так что не всё так прекрасно в королевстве датском.

Оператор try … except работает в паре с оператором raise.
  
>>> try:
...   if 1 < 2:
...     raise ValueError
...   else:
...     print('ok')
... except ValueError:
...   print('fail')
... 
fail
>>>
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