не могу понять в чем причина, не выводит нужный результат

volon

Новичок
Пользователь
Фев 23, 2022
2
1
3
Ребят всем привет, у меня есть задание по питону:
Исходные данные имеют следующую структуру:

1.перечень всех документов
documents = [
{‘type’: ‘passport’, ‘number’: ‘2207 876234’, ‘name’: ‘Василий Гупкин’},
{‘type’: ‘invoice’, ‘number’: ‘11-2’, ‘name’: ‘Геннадий Покемонов’},
{‘type’: ‘insurance’, ‘number’: ‘10006’, ‘name’: ‘Аристарх Павлов’}
]
2.перечень полок, на которых хранятся документы (если документ есть в documents, то он обязательно должен быть и в directories)
directories = {
‘1’: [‘2207 876234’, ‘11-2’],
‘2’: [‘10006’],
‘3’: []
}

Задание 3 Пользователь по команде “l” может увидеть полную информацию по всем документам

Введите команду:
l
Результат:

№: 2207 876234, тип: passport, владелец: Василий Гупкин, полка хранения: 1
№: 11-2, тип: invoice, владелец: Геннадий Покемонов, полка хранения: 1
№: 10006, тип: insurance, владелец: Аристарх Павлов, полка хранения: 2

я написал следующий код:
Python:
def info(documents, directories):
    for shelf, cont in directories.items():
        for doc in documents:
            if doc['number'] in cont:
                return f"№: {doc['number']}, тип: {doc['type']}, владелец: {doc['name']}, полка хранения: {shelf}"

Но результат он мне выдает следующий:
Снимок экрана 2022-02-23 в 12.45.32.png

На что мне стоит обратить внимание или как исправить, чтобы выдавал весь список документов, через print он выдает этот список, но в конце списка выводит None в конце, на что мне сказали так не должно быть, помогите(
 
Последнее редактирование модератором:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
1) Указанный вариант не работает потому, что при первом же return функция, а с ней и цикл for, завершаются
2) Просто замени return на print (ты так вроде уже делал) а потом вызови функцию не в print-е
То есть не
print(info())
а
info()

Иначе print выведет то, что вернет функция, а если она ничего не вернет, это будет None
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
P.s.
Лучше вставляй код с указанием языка
1645613139291.png

(списки и словари тоже код)
 

volon

Новичок
Пользователь
Фев 23, 2022
2
1
3
Спасибо большое!
 
  • Мне нравится
Реакции: Vershitel_sudeb

Форум IT Специалистов