Ниже приведён один из вариантов решения задачи на языке Python с подробными комментариями и пошаговым объяснением.
──────────────────────────────
Шаг 1. Определим структуру данных для книги
Для хранения сведений о книге удобно создать класс Book, в котором будут следующие поля:
– udc (номер УДК)
– author (фамилия и инициалы автора)
– title (название книги)
– year (год издания)
– quantity (количество экземпляров)
Класс также будет иметь метод для красивого вывода информации о книге.
──────────────────────────────
Шаг 2. Создадим список, содержащий начальные данные о кн...
class Book:
def (self, udc, author, title, year, quantity):
self.udc = udc # номер УДК
self.author = author # фамилия и инициалы автора
self.title = title # название книги
self.year = year # год издания
self.quantity = quantity # количество экземпляров
def (self):
return fУДК: {self.udc}, Автор: {self.author}, Название: {self.title}, Год: {self.year}, Количество: {self.quantity}
books = [
Book(001.642, Иванов И.И., Программирование на Python, 2018, 5),
Book(005.133, Петров П.П., Введение в алгоритмы, 2015, 3),
Book(004.421, Сидоров С.С., Основы информатики, 2020, 2)
]
def addook():
print(Добавление новой книги в библиотеку:)
udc = input(Введите номер УДК: )
author = input(Введите фамилию и инициалы автора: )
title = input(Введите название книги: )
try:
year = int(input(Введите год издания: ))
except ValueError:
print(Неверный ввод года. Операция отменена.)
return
try:
quantity = int(input(Введите количество экземпляров: ))
except ValueError:
print(Неверный ввод количества. Операция отменена.)
return
newook = Book(udc, author, title, year, quantity)
books.append(newook)
print(Книга успешно добавлена!)
def removeook():
print(Удаление книги из библиотеки:)
udc = input(Введите номер УДК книги для удаления: )
Найдём книгу с указанным номером УДК
for book in books:
if book.udc == udc:
books.remove(book)
print(Книга удалена!)
return
print(Книга с таким номером УДК не найдена.)
def sortdisplayooks():
if not books:
print(Список книг пуст!)
return
Сортируем список по году издания
sortedooks = sorted(books, key=lambda b: b.year)
print(Сведения о книгах, отсортированные по году издания:)
for book in sortedooks:
print(book)
def main():
while True:
print(\n===== Меню библиотеки =====)
print(1. Вывести информацию о книгах (отсортировано по году издания))
print(2. Добавить новую книгу)
print(3. Удалить книгу)
print(4. Выход)
choice = input(Ваш выбор (1-4): )
if choice == 1:
sortdisplayooks()
elif choice == 2:
addook()
elif choice == 3:
removeook()
elif choice == 4:
print(Выход из программы. До свидания!)
break
else:
print(Неверный выбор. Повторите попытку.)
if == :
main()
──────────────────────────────
Пошаговое объяснение работы программы:
- При запуске программы создаётся список books с начальными данными.
- В функции main() выводится меню, в котором пользователь может:
• Вывести список всех книг, отсортированных по году издания. Для этого вызывается функция sortdisplayooks(), которая сортирует список и выводит каждую книгу.
• Добавить книгу: функция addook() запрашивает у пользователя все необходимые данные и добавляет новую книгу в список.
• Удалить книгу: функция removeook() запрашивает номер УДК книги и, если книга найдена, удаляет её из списка.
• Выйти: завершает работу программы.
- Программа работает в бесконечном цикле, пока пользователь не выберет пункт выхода.
Таким образом, данный код соответствует поставленной задаче: хранение, добавление, удаление и сортированный вывод информации о книгах в библиотеке.