26.01.2024
Валидация инпутов на Python
Разбирался сегодня с условными инструкциями if и else, и смог написать функцию валидации инпутов.
def print_image_info(image_info):
print(f"Я {cat_value}, и фото моей собаки в архиве содержится под номером {image_value}")
def get_valid_input():
while True:
try:
input_text = input("Введите ваше имя: ")
# Проверяем, что введенная строка состоит из букв и не пуста
if input_text.isalpha():
return input_text
else:
print("Пожалуйста, введите корректное имя (буквы без пробелов).")
except ValueError:
print("Пожалуйста, введите корректное значение.")
input_text = get_valid_input()
def get_valid_input():
while True:
try:
input_number = input("Введите значение картинки: ")
# Проверяем, что введенная строка состоит из букв и не пуста
if input_number.isdigit():
return input_number
else:
print("Пожалуйста, введите корректное значение картинки.")
except ValueError:
print("Пожалуйста, введите корректное значение.")
input_number = get_valid_input()
image_info = {'cat': input_text, 'image': input_number}
cat_value = image_info.get('cat')
image_value = image_info.get('image')
print_image_info(image_info)
Функция создает список (dict), в который из полей передаются два параметра имя и номер изображения.
Первая функция print_image_info проверяет заполнены ли оба поля, если да, выводит текст: Я {cat_value}, и фото моей собаки в архиве содержится под номером {image_value}, где параметры из {} являются данными из input.
Если же одно поле не заполнено, выводится ошибка: Ошибка, одно из полей не заполнено
Так же ниже идет регистрация и вывод полей инпутов, в которых происходит проверка на валидность значений. Первое поле проверяется методом isalpha(). Что означает проверку на вводимые значения только буквы. Второе поле инпут, проверяется методом isdigit() который проверяет на ввод данных именно цифры.
Если значения заполнены верно, код проходит дальше и выводит нужную строку, если же значения введенные в инпут не верны, код возвращает ошибку именно под тем полем, которое не верно и дает возможность заполнить заново не верное поле.