Почему not in не работает в моем коде? Я пытался разбивать конструкция на два not in для '@' и для '.' , но условие не проходит. Что нужно сделать?
string = 'Ван dsytz@ru 62'
split_string = string.split(' ')
if '@' and '.' not in list(split_string[1]):
raise NotEmailError('Некорректный email')
string = 'Ван dsytz@ru 62'
split_string = string.split(' ')
if '@' not in list(split_string[1]) and '.' not in list(split_string[1]):
raise NotEmailError('Некорректный email')
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Попробуйте так:
if '@' not in split_string[1] or '.' not in split_string[1]:
raise NotEmailError('Некорректный email')
Условие '@' and '.' not in list(split_string[1]) это проверка:
'@'- проверка строки'@'- это всегда будетTrue, т.к. булевоеTrueдля строки - что она не пустая'.' not in list(split_string[1])- а тут уже зависит от значения вsplit_string[1]
Поэтому, нужно явно писать '@' not in split_string[1], чтобы проверить наличие '@'. А приведение к списку в list(split_string[1]) лишнее - оператор in есть и у строк