Форум сайта python.su
Здравствуйте форумчане, прошу помощи в весьма,на первый взгляд,тривиальной задаче, которая не поддается решению:
Коля стал замечать, что иногда в его телефонную книгу попадают номера в некорректном формате. Чтобы не сохранять недействительные номера, он попросил Вас обрабатывать только номера, соответствующие критериям:
1 номер должен начинаться либо с +7, либо с 8 и состоять из 11 цифр.
2 блоки цифр могут разделяться пробелами или дефисами.
3 вторая, третья и четвертая цифры могут помещаться в скобки.
Если программа встречает некорректный номер, она должна его проигнорировать. В обратном случае она должна привести номер к виду +7 (900) 800-70-60 и запомнить. Остальной функционал программы остается без изменений.
ВВОД
Ben 89001234050, +7 050 432 10-09
Alice 404-502, 894053212-65, 439-095
Nick +1(650)781 12-51
Ben
Alex +4(908)273-22-421, 8 (908) 273-22-42
Alice
Nick
Robert 51234047129, 89174043215
Alex
Robert
.
ВЫВОД
+7 (900) 123-40-50, +7 (050) 432-10-09
+7 (940) 532-12-65
Не найдено
+7 (908) 273-22-42
+7 (917) 404-32-15
вот мой код но не совсем то выдает, не знаю как решить проблему
phone_book = dict() data = input() while data != '.': data = data.replace(',','') data = data.replace("-",'') data = data.split() if len(data) == 1: name = ''.join(data) if name in phone_book: a = ', '.join(phone_book[name]) print(a) else: print("Не найдено" ) else: name, number = data[0],data[1:] phone_book[name] = phone_book.get(name,[]) + number data = input() [quote][quote][/quote][/quote]
Отредактировано strannikkk999 (Март 25, 2020 12:43:31)
Офлайн
https://tproger.ru/translations/regular-expression-python/
https://web.izjum.com/regexp-email-url-phone
ps по коментариям во второй ссылке утверждают что не все телефоны обрабатываются правильно
Отредактировано AD0DE412 (Март 26, 2020 09:13:43)
Офлайн