ПАЙТОН! Розробіть програму «Бібліотека».Створіть список (назва, автор, видавництво, жанр, ціна, рейтинг).
творіть список з 10 книг. Реалізуйте для нього такі можливості:
■ Редагувати книгу;
■ Друк усіх книг;
■ Додати книгу;
■ Видалити книгу;
■ Пошук книг за автором;
■ Пошук книги за назвою;
■ Сортування списку за назвою книг;
■ Сортування списку за автором;
■ Сортування списку за видавництвом.
■ Сортування списку за ціною
■ Сортування списку за рейтингом
Ответы
Ответ:
python
class Book:
def __init__(self, title, author, publisher, genre, price, rating):
self.title = title
self.author = author
self.publisher = publisher
self.genre = genre
self.price = price
self.rating = rating
class Library:
def __init__(self):
self.books = []
def add_book(self, book):
self.books.append(book)
def remove_book(self, book):
self.books.remove(book)
def print_all_books(self):
for book in self.books:
print("Title:", book.title)
print("Author:", book.author)
print("Publisher:", book.publisher)
print("Genre:", book.genre)
print("Price:", book.price)
print("Rating:", book.rating)
print("---------")
def edit_book(self, book, new_title=None, new_author=None, new_publisher=None, new_genre=None, new_price=None, new_rating=None):
if new_title:
book.title = new_title
if new_author:
book.author = new_author
if new_publisher:
book.publisher = new_publisher
if new_genre:
book.genre = new_genre
if new_price:
book.price = new_price
if new_rating:
book.rating = new_rating
def search_by_author(self, author):
found_books = []
for book in self.books:
if book.author.lower() == author.lower():
found_books.append(book)
return found_books
def search_by_title(self, title):
found_books = []
for book in self.books:
if book.title.lower() == title.lower():
found_books.append(book)
return found_books
def sort_by_title(self):
self.books.sort(key=lambda x: x.title)
def sort_by_author(self):
self.books.sort(key=lambda x: x.author)
def sort_by_publisher(self):
self.books.sort(key=lambda x: x.publisher)
def sort_by_price(self):
self.books.sort(key=lambda x: x.price)
def sort_by_rating(self):
self.books.sort(key=lambda x: x.rating)
# Создаем несколько книг
book1 = Book("Book1", "Author1", "Publisher1", "Genre1", 10.5, 4.5)
book2 = Book("Book2", "Author2", "Publisher2", "Genre2", 12.99, 4.0)
book3 = Book("Book3", "Author3", "Publisher1", "Genre3", 19.99, 3.8)
# Создаем объект библиотеки и добавляем книги
library = Library()
library.add_book(book1)
library.add_book(book2)
library.add_book(book3)
# Выводим все книги
library.print_all_books()
# Редактируем книгу
book2.title = "New Title"
library.edit_book(book2, new_author="New Author", new_price=15.99)
library.print_all_books()
# Удаляем книгу
library.remove_book(book1)
library.print_all_books()
# Поиск книг по автору и названию
found_books = library.search_by_author("Author1")
for book in found_books:
print("Book found by author:", book.title)
found_books = library.search_by_title("Book3")
for book in found_books:
print("Book found by title:", book.author, book.publisher)
# Сортировка списка книг
library.sort_by_title()
print("Books sorted by title:")
library.print_all_books()
library.sort_by_author()
print("Books sorted by author:")
library.print_all_books()
library.sort_by_publisher()
print("Books sorted by publisher:")
library.print_all_books()
library.sort_by_price()
print("Books sorted by price:")
library.print_all_books()
library.sort_by_rating()
("Books sorted by rating:")
library.print_all_books()