Какая команда проверяет из чего состоит input
У меня есть программа в которой есть поиск людей состоящих в списке. Выбирая 1 опцию, нужно вписать свою Фамилию и Имя для поиска, если Ваша фамилия есть в списке и Вы ввели только свою фамилию выйдет ошибка о том, что вы не найдены в базе из-за того, что надо вводить полностью ФИ, хотелось бы чтобы выходила также ошибка если вводить просто одно слово(Фамилию), так как там обязательно нужно и имя ,ибо например может быть несколько Ивановых
readers это список ФИ учащихся
def choice1(surname: str):
print('Введите свою ФИ для поиска:')
readerss = input()
if readerss in readers:
print('Вы найдены в базе!')
elif readerss
else:
print('Ошибка!Вы не найдены в базе')
readers = [Иванов Андрей, Камбышев Антон, Куплянов Сергей]
Ответы (1 шт):
Результат функции input - строка. Значит, для анализа содержимого строки вам нужно использовать методы типа строка.
Советую ознакомится с перечнем методов обработки строк - это поможет представлять, что можно сделать со строками.
В вашем случае для контроля ввода ДВУХ слов, есть смысл использовать метод split(delimeter). Выглядеть это будет примерно так:
readers = ['Иванов Андрей', 'Камбышев Антон', 'Куплянов Сергей']
def choice1():
# здесь можно выкинуть инструкцию print и указать строку в качестве приглашения ввода
readerss = input('Введите свою ФИ для поиска:')
# в качестве разделителя указываем пробел
fi = readress.split(' ')
# проверка на наличие 2х слов
if len(fi) != 2:
print('ошибка! Вы ввели неверное количество слов! ФИ должно состоять из 2х слов')
# для проверки вхождения в список, нам нужно проверить оба случая комбинации имени и фамилии (фамилия и имя при вводе могут быть перепутаны)
# для начала продемонстрирую самый простой и понятный способ через конкатенацию
str_fi_1 = fi[0] + ' ' + fi[1]
str_fi_2 = fi[1] + ' ' + fi[0]
# еще один способ, который делает то же самое - это называется f-строки или интерполяция
str_fi_1 = f'{fi[0]} {fi[1]}'
str_fi_2 = f'{fi[1]} {fi[0]}'
# проверяем, встречается ли хоть одна из комбинаций в переменной
if (str_fi_1 in readers) or (str_fi_2 in readers):
print('Вы найдены в базе!')
else:
print('Ошибка!Вы не найдены в базе')