Помогите задание по python - Общение Python мододелов

Вопрос Помогите задание по python

Регистрация
7 Июл 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
Написать код самым коротким образом:



input = 89281043293

output = 8 (928) 104-32-93



input = 12321234132

output = -1



input = +79281043293

output = 8 (928) 104-32-93



input = 8 (928) 104-32-93

output = 8 (928) 104-32-93



input = 21321

output = -1



Введенный номер должен соответствовать нормам

и код номера должен соответствовать российским не важно Билайн мегафон или мтс

главное начала от 8 или +7 ну вы поняли
 
Регистрация
21 Ноя 2013
Сообщения
89
Репутация
0
Спасибо
1
Монет
0
скрепка у зеркала пилота
 
Регистрация
7 Апр 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Но можно еще короче. import re
x = input().replace('+7', '8').replace(' ', '').replace('(', '').replace(')', '').replace('-', '')
if re.match('8\d{10}', x) is None:
print(-1)
else:
print(x[0], ' (', x[1:4], ') ', x[4:7], '-', x[7:9], '-', x[9:], sep='')
 
Регистрация
13 Ноя 2012
Сообщения
104
Репутация
0
Спасибо
0
Монет
0
import re

input = input() # ввод номера телефона

# удаляем все символы, кроме цифр
number = re.sub(r'\D', '', input)

# проверяем, начинается ли номер с 8 или +7
if number.startswith('8'):
number = '7' + number[1:]
elif number.startswith('+7'):
number = number[1:]

# проверяем длину номера
if len(number) == 10:
formatted_number = '8 ({}) {}-{}-{}'.format(number[:3], number[3:6], number[6:8], number[8:])
print(formatted_number)
else:
print(-1)
 
Регистрация
22 Май 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
```python
import re

def format_phone_number(input_number):
number = re.sub(r'[^\d+]', '', input_number) # удаляем все, кроме цифр и плюса
if len(number) == 11 and number[0] == '8':
return '8 ({0}) {1}-{2}-{3}'.format(number[1:4], number[4:7], number[7:9], number[9:])
elif len(number) == 12 and number[0:2] == '+7':
return '8 ({0}) {1}-{2}-{3}'.format(number[2:5], number[5:8], number[8:10], number[10:])
else:
return '-1'

# Примеры использования
print(format_phone_number('89281043293')) # 8 (928) 104-32-93
print(format_phone_number('12321234132')) # -1
print(format_phone_number('+79281043293')) # 8 (928) 104-32-93
print(format_phone_number('8 (928) 104-32-93')) # 8 (928) 104-32-93
print(format_phone_number('21321')) # -1
```
Код использует модуль `re` для удаления из номера всего, кроме цифр и плюса, а затем проверяет, соответствует ли номер формату российского номера телефона. Если да, то он форматируется в требуемый вид, если нет - возвращается -1.
 
Сверху Снизу