ПОМОГИТЕ СДЕЛАТЬ СРОЧНО ДАЮ 40 БАЛОВ!
НА Python
Клас Book:
Має атрибути title, author, publication_year.
Має атрибут available_copies, який зберігає кількість доступних екземплярів книги.
Має метод checkout, який зменшує кількість доступних екземплярів на 1 при видачі книги.
Має метод return_book, який збільшує кількість доступних екземплярів на 1 при поверненні книги.
Клас Library:
Має атрибут books, який є списком об'єктів класу Book.
Має метод add_book, який додає нову книгу до списку книг у бібліотеці.
Має метод search_by_author, який приймає ім'я автора і повертає список книг цього автора, що доступні в бібліотеці.
Має метод search_by_title, який приймає назву книги і повертає книгу з вказаною назвою, якщо вона доступна.
Програма:
Створює об'єкт класу Library.
Створює кілька об’єктів класу Book
Додає ці книги до бібліотеки за допомогою методу add_book.
Проводить декілька операцій видачі та повернення книг, використовуючи методи checkout та return_book.
Викликає методи search_by_author та search_by_title, щоб здійснити пошук книг у бібліотеці
Ответы
Ответ:
class Book:
def __init__(self, title, author, publication_year, available_copies):
self.title = title
self.author = author
self.publication_year = publication_year
self.available_copies = available_copies
def checkout(self):
if self.available_copies > 0:
self.available_copies -= 1
return True
else:
return False
def return_book(self):
self.available_copies += 1
class Library:
def __init__(self):
self.books = []
def add_book(self, book):
self.books.append(book)
def search_by_author(self, author):
found_books = [book for book in self.books if book.author == author and book.available_copies > 0]
return found_books
def search_by_title(self, title):
for book in self.books:
if book.title == title and book.available_copies > 0:
return book
return None
# Створення об'єкту бібліотеки
library = Library()
# Створення об'єктів книг та додавання їх до бібліотеки
book1 = Book("Книга 1", "Автор 1", 2000, 3)
book2 = Book("Книга 2", "Автор 2", 2010, 2)
book3 = Book("Книга 3", "Автор 1", 2015, 1)
library.add_book(book1)
library.add_book(book2)
library.add_book(book3)
# Видача та повернення книг
book1.checkout()
book2.checkout()
book2.return_book()
# Пошук книг за автором та за назвою
author_books = library.search_by_author("Автор 1")
print("Книги автора 1, що доступні в бібліотеці:")
for book in author_books:
print(f"{book.title} ({book.publication_year})")
title_book = library.search_by_title("Книга 2")
if title_book:
print(f"Знайдена книга за назвою: {title_book.title}")
else:
print("Книга за назвою не знайдена")
Объяснение:

