Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачку на питон

богдан худяков Знаток (252), на голосовании 5 месяцев назад
Помогите решить задачу, пожалуйста
Задача: «Библиотека книг»

Создайте класс Книга с атрибутами “автор”, “название” и “количество страниц”. Затем создайте класс "Библиотека", который будет содержать список этих книг. Реализуйте методы “добавить книгу”, который позволит добавлять книги в библиотеку, метод удаления книги из библиотеки, и метод “посчитать общее количество страниц”, который подсчитает общее количество страниц всех книг в библиотеке.

Используя библиотеку Pandas, создайте дополнительный метод "анализ данных", который будет анализировать данные о книгах в библиотеке. Этот метод должен выводить статистическую информацию, такую как среднее количество страниц на книгу, количество книг каждого автора.

Книги, которые нужно добавить в список и анализировать:

Михаил Булгаков — Мастер и Маргарита — 480
Михаил Булгаков — Собачье сердце — 256
Николай Гоголь — Мёртвые души — 448
Александр Пушкин — Евгений Онегин — 224
Федор Достоевский — Преступление и наказание — 672
Александр Пушкин — Повести Белкина — 320
Лев Толстой — Война и мир — 1296
Федор Достоевский — Село Степанчиково и его обитатели — 320
Николай Гоголь — Ревизор — 125
Иван Тургенев — Отцы и дети — 288
Антон Чехов — Палата № 6 — 320
Федор Достоевский — Братья Карамазовы — 768
Иван Тургенев — Рудин — 160
Федор Достоевский — Идиот — 640
Александр Грибоедов — Горе от ума — 240
Александр Пушкин — Дубровский — 192
Александр Пушкин — Капитанская дочка — 172
Голосование за лучший ответ
olimchik Мастер (1233) 6 месяцев назад
пример кода для реализации этой задачи:
 import pandas as pd 

class Book:
def __init__(self, author, title, pages):
self.author = author
self.title = title
self.pages = pages

class Library:
def __init__(self):
self.books = []

def add_book(self, book):
self.books.append(book)

def remove_book(self, title):
self.books = [book for book in self.books if book.title != title]

def total_pages(self):
return sum(book.pages for book in self.books)

def data_analysis(self):
data = {
'Author': [book.author for book in self.books],
'Title': [book.title for book in self.books],
'Pages': [book.pages for book in self.books]
}
df = pd.DataFrame(data)
print("Average number of pages per book:", df['Pages'].mean())
print("Number of books per author:\n", df['Author'].value_counts())

# Создаем библиотеку
library = Library()

# Добавляем книги
books = [
Book("Михаил Булгаков", "Мастер и Маргарита", 480),
Book("Михаил Булгаков", "Собачье сердце", 256),
Book("Николай Гоголь", "Мёртвые души", 448),
Book("Александр Пушкин", "Евгений Онегин", 224),
Book("Федор Достоевский", "Преступление и наказание", 672),
Book("Александр Пушкин", "Повести Белкина", 320),
Book("Лев Толстой", "Война и мир", 1296),
Book("Федор Достоевский", "Село Степанчиково и его обитатели", 320),
Book("Николай Гоголь", "Ревизор", 125),
Book("Иван Тургенев", "Отцы и дети", 288),
Book("Антон Чехов", "Палата № 6", 320),
Book("Федор Достоевский", "Братья Карамазовы", 768),
Book("Иван Тургенев", "Рудин", 160),
Book("Федор Достоевский", "Идиот", 640),
Book("Александр Грибоедов", "Горе от ума", 240),
Book("Александр Пушкин", "Дубровский", 192),
Book("Александр Пушкин", "Капитанская дочка", 172)
]

for book in books:
library.add_book(book)

# Анализ данных
library.data_analysis()
богдан худяковЗнаток (252) 6 месяцев назад
cgfcb,j
Похожие вопросы