Skip to content

Commit b8f8c9c

Browse files
author
Ilnur
committed
Fix format by ruff
1 parent 7b1a98a commit b8f8c9c

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

git/src/main.py

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
import json
22
import os
33

4-
def load_books(filename='library.json'):
4+
5+
def load_books(filename="library.json"):
56
"""
67
Загрузка списка книг из JSON-файла.
78
Возвращает список книг (каждая книга - это словарь).
89
"""
910
if not os.path.isfile(filename):
1011
return []
11-
with open(filename, 'r', encoding='utf-8') as file:
12+
with open(filename, "r", encoding="utf-8") as file:
1213
try:
1314
return json.load(file)
1415
except json.JSONDecodeError:
1516
return []
1617

17-
def save_books(books, filename='library.json'):
18+
19+
def save_books(books, filename="library.json"):
1820
"""
1921
Сохранение списка книг в JSON-файл.
2022
"""
21-
with open(filename, 'w', encoding='utf-8') as file:
23+
with open(filename, "w", encoding="utf-8") as file:
2224
json.dump(books, file, ensure_ascii=False, indent=4)
2325

26+
2427
def list_books(books):
2528
"""
2629
Возвращает строку со списком всех книг.
@@ -29,29 +32,30 @@ def list_books(books):
2932
return "Библиотека пуста."
3033
result_lines = []
3134
for idx, book in enumerate(books, start=1):
32-
result_lines.append(f"{idx}. {book['title']} | {book['author']} | {book['year']}")
35+
result_lines.append(
36+
f"{idx}. {book['title']} | {book['author']} | {book['year']}"
37+
)
3338
return "\n".join(result_lines)
3439

40+
3541
def add_book(books, title, author, year):
3642
"""
3743
Принимает текущий список книг и данные о новой книге.
3844
Возвращает новый список, в котором добавлена новая книга.
3945
"""
40-
new_book = {
41-
'title': title,
42-
'author': author,
43-
'year': year
44-
}
46+
new_book = {"title": title, "author": author, "year": year}
4547
# Создаём НОВЫЙ список, добавляя new_book
4648
return books + [new_book]
4749

50+
4851
def remove_book(books, title):
4952
"""
5053
Принимает текущий список книг и название книги для удаления.
5154
Возвращает новый список без книги, у которой совпадает название.
5255
"""
5356
# Фильтруем список: оставляем только те книги, у которых название не совпадает с переданным
54-
return [book for book in books if book['title'].lower() != title.lower()]
57+
return [book for book in books if book["title"].lower() != title.lower()]
58+
5559

5660
def search_books(books, keyword):
5761
"""
@@ -60,13 +64,16 @@ def search_books(books, keyword):
6064
"""
6165
keyword_lower = keyword.lower()
6266
return [
63-
book for book in books
64-
if keyword_lower in book['title'].lower() or keyword_lower in book['author'].lower()
67+
book
68+
for book in books
69+
if keyword_lower in book["title"].lower()
70+
or keyword_lower in book["author"].lower()
6571
]
6672

73+
6774
def main():
6875
"""
69-
Точка входа в программу: здесь мы загружаем книги,
76+
Точка входа в программу: здесь мы загружаем книги,
7077
показываем меню и обрабатываем ввод пользователя.
7178
"""
7279
books = load_books() # Загрузили список книг из JSON
@@ -81,11 +88,11 @@ def main():
8188

8289
choice = input("Выберите действие (1-5): ").strip()
8390

84-
if choice == '1':
91+
if choice == "1":
8592
print("\nСписок книг:")
8693
print(list_books(books))
8794

88-
elif choice == '2':
95+
elif choice == "2":
8996
print("\nДобавление новой книги:")
9097
title = input("Введите название: ").strip()
9198
author = input("Введите автора: ").strip()
@@ -97,9 +104,11 @@ def main():
97104
save_books(books) # Сразу сохраняем в файл
98105
print("Книга добавлена!")
99106

100-
elif choice == '3':
107+
elif choice == "3":
101108
print("\nУдаление книги:")
102-
title_to_remove = input("Введите название книги, которую хотите удалить: ").strip()
109+
title_to_remove = input(
110+
"Введите название книги, которую хотите удалить: "
111+
).strip()
103112

104113
new_books = remove_book(books, title_to_remove)
105114
if len(new_books) < len(books):
@@ -109,22 +118,25 @@ def main():
109118
else:
110119
print("Книга с таким названием не найдена.")
111120

112-
elif choice == '4':
121+
elif choice == "4":
113122
print("\nПоиск книг:")
114-
keyword = input("Введите ключевое слово для поиска (в названии или авторе): ").strip()
123+
keyword = input(
124+
"Введите ключевое слово для поиска (в названии или авторе): "
125+
).strip()
115126
found_books = search_books(books, keyword)
116127
if found_books:
117128
print("\nНайденные книги:")
118129
print(list_books(found_books))
119130
else:
120131
print("Ничего не найдено.")
121132

122-
elif choice == '5':
133+
elif choice == "5":
123134
print("Выход из программы.")
124135
break
125136

126137
else:
127138
print("Некорректный ввод. Попробуйте ещё раз.")
128139

140+
129141
if __name__ == "__main__":
130142
main()

0 commit comments

Comments
 (0)