chore: move task 1 to separate directory

This commit is contained in:
2026-02-26 16:19:11 +06:00
parent 16fd3a925a
commit 67e25b3f72
2 changed files with 0 additions and 0 deletions

44
task1/task1.py Normal file
View File

@@ -0,0 +1,44 @@
from dataclasses import dataclass
import json
from typing import Iterable
@dataclass
class Poem:
name: str
authors: str | list[str]
body: str
def load_data() -> list[Poem]:
with open("task1_poems.json", "r") as file:
return [
Poem(**obj)
for obj in json.load(file)
]
def ask_author_to_search() -> str:
return input("Имя автора для поиска: ")
def search_by_author(poems: list[Poem], author: str) -> list[Poem]:
return [
poem
for poem in poems
if isinstance(poem.authors, str) and poem.authors == author\
or author in poem.authors
]
def get_sorted_poems(poems: list[Poem]) -> list[Poem]:
return sorted(poems, key=lambda poem: len(poem.body))
def print_poems(poems: Iterable[Poem]) -> None:
for poem in poems:
authors: str = poem.authors if isinstance(poem.authors, str) \
else ", ".join(poem.authors)
print(f"{authors} - {poem.name} ({len(poem.body)} символов)")
poems = load_data()
author: str = ask_author_to_search()
poems = search_by_author(poems, author)
poems = get_sorted_poems(poems)
print_poems(poems)

32
task1/task1_poems.json Normal file
View File

@@ -0,0 +1,32 @@
[
{
"name": "Spring",
"authors": "John",
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut."
},
{
"name": "Autumn",
"authors": ["John", "Jane"],
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At."
},
{
"name": "Nothing",
"authors": "John",
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna."
},
{
"name": "VSCode",
"authors": "Jane",
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete et urbane Stoicos irridente, statua est in quo a nobis philosophia defensa et collaudata est, cum id, quod maxime placeat, facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum defuturum, quas natura non depravata desiderat. Et quem ad me accedis, saluto: 'chaere,' inquam, 'Tite!' lictores, turma omnis chorusque: 'chaere, Tite!' hinc hostis mi."
},
{
"name": "No name",
"authors": ["Jane", "John"],
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum."
},
{
"name": "City",
"authors": "John",
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam."
}
]