Не срабатывают условия if
documents = [
{"type": "passport", "number": "2207 876234", "name": "Василий Гупкин"},
{"type": "invoice", "number": "11-2", "name": "Геннадий Покемонов"},
{"type": "insurance", "number": "10006", "name": "Аристарх Павлов"}
]
def data_people(names):
for name in names:
num_pass = input()
sum_name = name['name']
num_pass = name['number']
if '10006' in num_pass:
return sum_name
elif '2207 876234' in num_pass :
return sum_name
print(data_people(documents))
По условию задачи надо вывести имена юзеров по номеру, т.е. ввели номер 10006, вывелся "Аристарх Павлов". Но у меня считывает и выводит почему то последний номер и выводит во всех условиях ="2207 876234 "Василий Гупкин" в чем моя ошибка ?
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
Ваш цикл завершается на первой же итерации, потому что выполняется '2207 876234' in num_pass и после return sum_name выполнение функции завершается.
Автор решения: GrAnd
→ Ссылка
Запросить ввод один раз до цикла. И в цикле просто сравнить введённое значение с нужным полем словаря.
def data_people(names):
num_pass = input()
for name in names:
if num_pass == name['number']:
return name['name']