Консольное приложение для управления библиотекой.
Демонстрирует принцип композиции — объект Library содержит объекты Book и User.
- Композиция (объект внутри другого объекта)
- Работа со списками объектов
- Поиск элементов в списке (
next) - Интерактивное меню с валидацией
- Валидация пользовательского ввода
- атрибуты:
title,author,year - метод
__str__— красивое представление
- атрибуты:
name,borrowed(список книг) - методы:
borrow(book),__str__
- атрибуты:
books(список книг),users(список читателей) - методы:
add_book(book)— добавить книгуadd_user(user)— добавить читателяborrow_book(title, user_name)— выдать книгуreturn_book(title, user_name)— вернуть книгуshow_books()— показать все книгиshow_users()— показать всех читателейshow_loans()— показать текущие выдачи
- Добавление книги
- Добавление читателя
- Выдача книги
- Возврат книги
- Просмотр книг
- Просмотр читателей
- Просмотр выдач
- Выход
- Функция
valid()для защиты от:- пустого ввода
- букв вместо чисел
- некорректных значений
1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 1
Введите название книги: Война и мир
Введите автора: Лев Толстой
Введите год: 1868
✅ Книга добавлена
1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 2
Введите свое имя: Гриша
✅ Читатель добавлен
1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 3
Имя читателя: Гриша
Название книги: Война и мир
Книга выдана пользователю: Гриша
1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 4
Имя читателя: Гриша
Название книги: Война и мир
Книга сдана
1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 5
Книги:
Война и мир (Лев Толстой), год: 1868
- Реализовывать композицию (один объект содержит другие)
- Искать элементы в списке через next
- Строить интерактивное меню с валидацией
- Разделять ответственность между классами
- Обрабатывать ошибки ввода
21_composition_library/
├── main.py # код программы
└── README.md # документацияpython main.py✅ Проект готов