Не срабатывают условия 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']
→ Ссылка