Форум сайта python.su
Помогите, пожалуйста, разобраться с исключениями на примере этой задачи, без исключений решила, но с ними не понимаю, как.
Напишите программу, проверяющую корректность введенного номера сотового телефона в РФ по следующим критериям:
Номер может начинаться как с +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
Ниже прикреплено мое решение без исключений.
Прикреплённый файлы:
main (16).py (1,4 KБ)
Офлайн
saveleva2003
без исключений решила
saveleva2003Вот такие номера пропускает твой код
Допускается наличие в любом месте одной пары скобок
+7(902)75(123)45
+7()9027512345
+79027512345x
+790275++12345+++
>>> try: ... if 1 < 2: ... raise ValueError ... else: ... print('ok') ... except ValueError: ... print('fail') ... fail >>>
Отредактировано py.user.next (Окт. 7, 2018 14:32:49)
Офлайн