Как написать условие для проверки символа + в моб.телефоне с помощью if

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Здравствуйте!
Нужно написать программу с валидацией моб номера.
Одно из требований: Первый символ знак плюс, остальные цифры.
Я написал:
Код:
phone_number = input('Введите номер тел: ')

if phone_number[0] != "+":
error = True

Не обрабатывается так ошибка, возможно есть еще какие-то пути?
 

Malenkey

Пользователь
Пользователь
Ноя 3, 2022
140
11
18
Учи regular expressions (модуль re). ССЫЛКА
Python:
import re

tel_no = input('Введите номер телефона в формате "+8/9 111 222 33 44" :')

if re.match(r'[+]{1}[8-9]{1}[ ]{1}[0-9]{3}[ ]{1}[0-9]{3}[ ]{1}[0-9]{2}[ ]{1}[0-9]{2}', tel_no):
    print('yes')
else:
    print('no')
r - raw string
[+] - символ или интервал символов, который должен быть в строке на данной позиции
{1} - количество повторов предыдущего символа
 
  • Мне нравится
Реакции: Some_acc

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 139
377
83
Попробуйте регулярные выражения, примеров куча
 
  • Мне нравится
Реакции: Some_acc

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Cпасибо большое, попробую!
 

Malenkey

Пользователь
Пользователь
Ноя 3, 2022
140
11
18
Не обрабатывается, потому что нет отступов, наверное. Вот так все обрабатывается:
Python:
phone_number = input('Введите номер тел: ')

if phone_number[0] != "+":
    print('error')
 
  • Мне нравится
Реакции: Some_acc

4olshoy_blen

Активный пользователь
Пользователь
Ноя 13, 2022
137
32
28
Первый символ знак плюс, остальные цифры
Примерно такое условие, а также добавил ещё проверку на несоответствие количества чисел в номере
Python:
phone_number = input('Введите номер тел: ')

if phone_number[0] != "+" or not phone_number[1:].isdigit() or len(phone_number) != 13:
    print('error')
 
  • Мне нравится
Реакции: Some_acc

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 139
377
83
Примерно такое условие, а также добавил ещё проверку на несоответствие количества чисел в номере
Python:
phone_number = input('Введите номер тел: ')

if phone_number[0] != "+" or not phone_number[1:].isdigit() or len(phone_number) != 13:
    print('error')
не 13, а 12
 
  • Мне нравится
Реакции: Some_acc

4olshoy_blen

Активный пользователь
Пользователь
Ноя 13, 2022
137
32
28
В украине 13 знаков, включая "+"
 

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Спасибо всем большое за помощь!
 

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Учи regular expressions (модуль re). ССЫЛКА
Python:
import re

tel_no = input('Введите номер телефона в формате "+8/9 111 222 33 44" :')

if re.match(r'[+]{1}[8-9]{1}[ ]{1}[0-9]{3}[ ]{1}[0-9]{3}[ ]{1}[0-9]{2}[ ]{1}[0-9]{2}', tel_no):
    print('yes')
else:
    print('no')
r - raw string
[+] - символ или интервал символов, который должен быть в строке на данной позиции
{1} - количество повторов предыдущего символа
Спасибо!
 

Форум IT Специалистов