Как задать параметры ввода при условиях:
Не могу никак сообразить как написать код для каждой строки и связать их между собой
name = input('Введите имя: ')
Имя не должно включать числа и символы, только буквы
birthday = input('Введите дату рождения в формате год-месяц-день: ')
Дата рождения должна быть только в формате год-месяц-день
mail = input('Введите почту: ')
при вводе почты обязательное условие символы '@' и '.'
Мой код:
name = input('Введите имя: ')
if name(input([а - яА - Яa - zA - Z])): # допустимые символы
print('Имя введено корректно.')
else name(input([0 - 9])): # недопустимые символы
print('Имя введено не корректно, попробуйте еще раз'
моя ошибка: Файл "C:\Users\user\untitled-1.py", строка 4, из else name(input([0 - 9])): # недопустимые символы Syntax Error: expected ':': , line 4, pos 6
Ответы (1 шт):
Автор решения: Shalbuz
→ Ссылка
В тоем случае можно решить проблему через регулярные выражения или с помощью библиотеки validators. Написал регулярку, возможно где-то опечатался, но вроде все работает как надо:
import re
name = birthday = mail = None
name_pattern = re.compile(r'^[a-zA-Zа-яА-Я]+$')
date_pattern = re.compile(r'^([1-9]\d{3})[.-/\\](?:0[1-9]|1[1-2])[.-/\\]([0-2]\d|3[0-1])$')
email_pattern = re.compile(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9o-]+)+$')
incorrect_msg = "Некорректный ввод, попробуйте еще раз: "
name = input('Введите имя: ')
while not name_pattern.match(name):
name = input(incorrect_msg)
birthday = input('Введите дату рождения: ')
while not date_pattern.match(birthday):
birthday = input(incorrect_msg)
email = input('Введите почту: ')
while not email_pattern.match(email):
email = input(incorrect_msg)