Как задать параметры ввода при условиях:

Рейтинг: 0Ответов: 1Опубликовано: 14.02.2023

Не могу никак сообразить как написать код для каждой строки и связать их между собой

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

Ответы

▲ 0Принят

В тоем случае можно решить проблему через регулярные выражения или с помощью библиотеки 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)