Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 0 additions & 183 deletions Лабораторная работа 1/task_1.py

This file was deleted.

38 changes: 38 additions & 0 deletions Лабораторная работа 2/task_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
BOOKS_DATABASE = [
{
"id": 1,
"name": "test_name_1",
"pages": 200,
},
{
"id": 2,
"name": "test_name_2",
"pages": 400,
}
]


class Book:
"""Класс книга"""

def __init__(self, id_: int, name: str, pages: int):
self.id_ = id_
self.name = name
self.pages = pages

def __str__(self) -> str:
return f'Книга "{self.name}"'

def __repr__(self) -> str:
return f"{self.__class__.__name__}(id_={self.id_}, name='{self.name}', pages={self.pages})"


if __name__ == '__main__':
# инициализируем список книг
list_books = [
Book(id_=book_dict["id"], name=book_dict["name"], pages=book_dict["pages"]) for book_dict in BOOKS_DATABASE
]
for book in list_books:
print(book) # проверяем метод __str__

print(list_books) # проверяем метод __repr__
62 changes: 62 additions & 0 deletions Лабораторная работа 2/task_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
from typing import Optional

BOOKS_DATABASE = [
{
"id": 1,
"name": "test_name_1",
"pages": 200,
},
{
"id": 2,
"name": "test_name_2",
"pages": 400,
}
]


class Book:
"""Класс Книга"""

def __init__(self, id_: int, name: str, pages: int):
self.id_ = id_
self.name = name
self.pages = pages

def __str__(self) -> str:
return f'Книга "{self.name}"'

def __repr__(self) -> str:
return f"{self.__class__.__name__}(id_={self.id_}, name='{self.name}', pages={self.pages})"


class Library:
"""Класс Библиотека"""

def __init__(self, books: Optional[list: Book] = None):
self.books = books

def get_next_book_id(self):
if not self.books:
return 1
else:
return self.books[-1].id_ + 1

def get_index_by_book_id(self, book_id: int):
for index, book in enumerate(self.books):
if book.id_ == book_id:
return index
else:
raise ValueError("Книги с запрашиваемым id не существует")


if __name__ == '__main__':
empty_library = Library() # инициализируем пустую библиотеку
print(empty_library.get_next_book_id()) # проверяем следующий id для пустой библиотеки

list_books = [
Book(id_=book_dict["id"], name=book_dict["name"], pages=book_dict["pages"]) for book_dict in BOOKS_DATABASE
]
library_with_books = Library(books=list_books) # инициализируем библиотеку с книгами
print(library_with_books.get_next_book_id()) # проверяем следующий id для непустой библиотеки

print(library_with_books.get_index_by_book_id(1)) # проверяем индекс книги с id = 1