Share This
Связаться со мной
Крути в низ
Categories
//Преобразование телефонных номеров: задача на программирование

Преобразование телефонных номеров: задача на программирование

29.07.2021Category : Python

Кодинг-марафон. Задача 6.

В БД некоего предприятия номера телефонов хранятся как попало и вам поручили написать функцию, которая приведёт их все к одному формату.

Функция должна называться format_numbers, она принимает на вход строку (исходный номер) и возвращает строку (номер в нужном формате).

Сигнатура def format_numbers(phone_number: str) -> str:

Особенности номеров в БД:

  • помимо цифр может содержать дефисы -, пробелы, скобки и знак + (но + только первым символом)
  • номер всегда валиден (содержит 11 цифр)
  • номер всегда начинается с 8 или +7, причем + может быть только в начале номера
  • не может быть 2 идущих подряд дефисов, скобок или пробелов

Необходимо, чтобы на выходе любой номер стал такого формата: +7(909)101-10-10

Примеры

format_numbers('+79091011010') == '+7(909)101-10-10' format_numbers('8(909)1011010') == '+7(909)101-10-10' format_numbers('+7 909 101-10-10') == '+7(909)101-10-10'

Варианты решений

def format_numbers(phone_number: str) -> str:     return '+7({0}{1}{2}){3}{4}{5}-{6}{7}-{8}{9}'.format(*[i for i in phone_number if i.isdigit()][1:])
def format_numbers(phone_number: str) -> str:     numbers = list(filter(str.isdigit, phone_number))[1:]     return "+7({}{}{}){}{}{}-{}{}-{}{}".format(*numbers)

preobrazovanie telefonnyh nomerov zadacha na programmirovanie 37dc178 - Преобразование телефонных номеров: задача на программирование

Кодинг-марафон по Python

Реши 10 задач и выиграй 5500 рублей

Подписаться ×

  • 4 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close