/
oksana
/
Homework1
Обзор
Документация
Войти
/
oksana
/
Homework1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Job4.py
346 строк
13 KB
Оксана Матвеева
upload files
31 янв 2025, 09:13
31 янв 2025, 09:13
d91b3d4
Код
Авторство
О чём код?
#Задание 1 #Пункт 1. Пользователь по команде "p" может узнать владельца документа по его номеру def get_document_owner(documents, document_number): for document in documents: if document['number'] == document_number: return document['name'] return None def main(): # Исходные данные 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': [] } while True: command = input("Введите команду: ") if command == "p": document_number = input("Введите номер документа: ") owner = get_document_owner(documents, document_number) if owner is not None: print(f"Владелец документа: {owner}") else: print("Документ не найден в базе") elif command == "q": break else: print("Неизвестная команда.") if __name__ == "__main__": main() #Пункт 2. Пользователь по команде "s" может по номеру документа узнать на какой полке он хранится def get_document_shelf(directories, document_number): for shelf, numbers in directories.items(): if document_number in numbers: return shelf return None def main(): # Исходные данные 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': [] } while True: command = input("Введите команду: ") if command == "p": document_number = input("Введите номер документа: ") owner = get_document_owner(documents, document_number) if owner is not None: print(f"Владелец документа: {owner}") else: print("Документ не найден в базе") elif command == "s": document_number = input("Введите номер документа: ") shelf = get_document_shelf(directories, document_number) if shelf is not None: print(f"Документ хранится на полке: {shelf}") else: print("Документ не найден в базе") elif command == "q": break else: print("Неизвестная команда.") # Функция для нахождения владельца документа по его номеру def get_document_owner(documents, document_number): for document in documents: if document['number'] == document_number: return document['name'] return None if __name__ == "__main__": main() #Пункт 3. Пользователь по команде "l" может увидеть полную информацию по всем документам def get_document_shelf(directories, document_number): for shelf, numbers in directories.items(): if document_number in numbers: return shelf return None def list_all_documents(documents, directories): for document in documents: shelf = get_document_shelf(directories, document['number']) print(f"№: {document['number']}, тип: {document['type']}, владелец: {document['name']}, полка хранения: {shelf}") def main(): # Исходные данные 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': [] } while True: command = input("Введите команду: ") if command == "p": document_number = input("Введите номер документа: ") owner = get_document_owner(documents, document_number) if owner is not None: print(f"Владелец документа: {owner}") else: print("Документ не найден в базе") elif command == "s": document_number = input("Введите номер документа: ") shelf = get_document_shelf(directories, document_number) if shelf is not None: print(f"Документ хранится на полке: {shelf}") else: print("Документ не найден в базе") elif command == "l": list_all_documents(documents, directories) elif command == "q": break else: print("Неизвестная команда.") # Функция для нахождения владельца документа по его номеру def get_document_owner(documents, document_number): for document in documents: if document['number'] == document_number: return document['name'] return None if __name__ == "__main__": main() #Пункт 4. Пользователь по команде "ads" может добавить новую полку def add_new_shelf(directories, new_shelf): if new_shelf in directories.keys(): print(f"Такая полка уже существует. Текущий перечень полок: {', '.join(sorted(directories.keys()))}.") else: directories[new_shelf] = [] print(f"Полка добавлена. Текущий перечень полок: {', '.join(sorted(directories.keys()))}.") def get_document_shelf(directories, document_number): for shelf, numbers in directories.items(): if document_number in numbers: return shelf return None def list_all_documents(documents, directories): for document in documents: shelf = get_document_shelf(directories, document['number']) print(f"№: {document['number']}, тип: {document['type']}, владелец: {document['name']}, полка хранения: {shelf}") def main(): # Исходные данные 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': [] } while True: command = input("Введите команду: ") if command == "p": document_number = input("Введите номер документа: ") owner = get_document_owner(documents, document_number) if owner is not None: print(f"Владелец документа: {owner}") else: print("Документ не найден в базе") elif command == "s": document_number = input("Введите номер документа: ") shelf = get_document_shelf(directories, document_number) if shelf is not None: print(f"Документ хранится на полке: {shelf}") else: print("Документ не найден в базе") elif command == "l": list_all_documents(documents, directories) elif command == "ads": new_shelf = input("Введите номер полки: ") add_new_shelf(directories, new_shelf) elif command == "q": break else: print("Неизвестная команда.") # Функция для нахождения владельца документа по его номеру def get_document_owner(documents, document_number): for document in documents: if document['number'] == document_number: return document['name'] return None if __name__ == "__main__": main() #Пункт 5. Пользователь по команде "ds" может удалить существующую полку из данных (только если она пустая) def delete_empty_shelf(directories, shelf_to_delete): if shelf_to_delete not in directories.keys(): print(f"Такой полки не существует. Текущий перечень полок: {', '.join(sorted(directories.keys()))}.") elif len(directories[shelf_to_delete]) != 0: print(f"На полке есть документы, удалите их перед удалением полки. Текущий перечень полок: {', '.join(sorted(directories.keys()))}.") else: del directories[shelf_to_delete] print(f"Полка удалена. Текущий перечень полок: {', '.join(sorted(directories.keys()))}.") def add_new_shelf(directories, new_shelf): if new_shelf in directories.keys(): print(f"Такая полка уже существует. Текущий перечень полок: {', '.join(sorted(directories.keys()))}.") else: directories[new_shelf] = [] print(f"Полка добавлена. Текущий перечень полок: {', '.join(sorted(directories.keys()))}.") def get_document_shelf(directories, document_number): for shelf, numbers in directories.items(): if document_number in numbers: return shelf return None def list_all_documents(documents, directories): for document in documents: shelf = get_document_shelf(directories, document['number']) print(f"№: {document['number']}, тип: {document['type']}, владелец: {document['name']}, полка хранения: {shelf}") def main(): # Исходные данные 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': [] } while True: command = input("Введите команду: ") if command == "p": document_number = input("Введите номер документа: ") owner = get_document_owner(documents, document_number) if owner is not None: print(f"Владелец документа: {owner}") else: print("Документ не найден в базе") elif command == "s": document_number = input("Введите номер документа: ") shelf = get_document_shelf(directories, document_number) if shelf is not None: print(f"Документ хранится на полке: {shelf}") else: print("Документ не найден в базе") elif command == "l": list_all_documents(documents, directories) elif command == "ads": new_shelf = input("Введите номер полки: ") add_new_shelf(directories, new_shelf) elif command == "ds": shelf_to_delete = input("Введите номер полки: ") delete_empty_shelf(directories, shelf_to_delete) elif command == "q": break else: print("Неизвестная команда.") # Функция для нахождения владельца документа по его номеру def get_document_owner(documents, document_number): for document in documents: if document['number'] == document_number: return document['name'] return None if __name__ == "__main__": main()