Код слетает, при проверке сказали что почти все правильно, но надо найти неточности, не могу найти неточности.
есть задание, есть коды решение. Коды слетают, иногда работают, иногда нет, как сказал препод, все почти правильно , но есть недочеты. Не могу найти эти недочеты, кто посмотрит?
Код:
documents = [
{'type': 'passport', 'number': '2207 876234', 'name': 'Василий Гупкин'},
{'type': 'invoice', 'number': '11-2', 'name': 'Геннадий Покемонов'},
{'type': 'insurance', 'number': '10006', 'name': 'Аристарх Павлов'}
]
directories = {
'1': ['2207 876234', '11-2'],
'2': ['10006'],
'3': []
}
def find_owner(number):
res = 'Документ не найден в базе'
for i in documents:
if i['number'] == number:
res = 'Владелец документа: ' + i['name']
return(res)
find_owner(documents)
# Задание 2
# Пользователь по команде “s” может по номеру документа узнать на какой полке он хранится
def shelf(number):
res = 'Документ не найден в базе'
for i in directories:
if number in directories[i]:
res = 'Документ хранится на полке:' + i
return res
shelf(directories)
# #задание 3 введите команду L
def info(documents, directories):
for shelf, cont in directories.items():
for doc in documents:
if doc['number'] in cont:
print(f"№: {doc['number']}, тип: {doc['type']}, владелец: {doc['name']}, полка хранения: {shelf}")
info(documents,directories)
#4 задание
def add_shelf(number):
if number in directories:
return 'Такая полка уже существует. Текущий перечень полок:' + ','.join(directories.keys())
directories[number] = []
return 'Полка добавлена. Текущий перечень полок:' + ','.join(directories.keys())
add_shelf(directories)
# задание 5 Пользователь по команде “ds” может удалить существующую полку из данных (только если она пустая)
def rem_shelf(number):
if number in directories:
if len(directories[number]) > 0:
return 'На полке есть документа, удалите их перед удалением полки. Текущий перечень полок: ' + ', '.join(directories.keys())
del directories[number]
print('Полка удалена. Текущий перечень полок: ' + ', '.join(directories.keys()))
print ('Такой полки не существует. Текущий перечень полок:' + ', '.join(directories.keys()))
rem_shelf(directories)
def main(documents, directories):
while True:
user_input = input('Введите команду')
if user_input == 'p':
number = input("Введите номер документа: ")
print(find_owner(number))
elif user_input == 's':
number = input("Введите номер документа: ")
print(shelf(number))
elif user_input == 'l':
print(info(documents, directories))
elif user_input == 'as':
number = input("Введите номер полки: ")
print(add_shelf(number))
elif user_input == 'ds':
number = input("Введите номер полки: ")
print(rem_shelf(number))
elif user_input == 'q':
break
main(documents, directories)