From 88458d07394f724893b13b4677b3f3ba067258ae Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 13 Oct 2026 13:37:26 +0200 Subject: [PATCH] u5 --- u5/kindergarten_garden.py | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 u5/kindergarten_garden.py diff --git a/u5/kindergarten_garden.py b/u5/kindergarten_garden.py new file mode 100644 index 0000000..7587e18 --- /dev/null +++ b/u5/kindergarten_garden.py @@ -0,0 +1,45 @@ +class NoSuchStudentException(Exception): + """Raised when plants are requested for a student not assigned a plot.""" + + +DEFAULT_STUDENTS = ( + "Alena", + "Boris", + "Cyril", + "Daniel", + "Eva", + "František", + "Gitka", + "Helena", + "Ivana", + "Jozef", + "Karol", + "Ladislav", +) + +PLANT_NAMES = { + "G": "Trava", + "C": "Ďatelina", + "R": "Reďkovky", + "V": "Fialky", +} + + +class Garden: + def __init__(self, diagram, students=None): + self.row = diagram.splitlines() + self.students = sorted(DEFAULT_STUDENTS if students is None else students) + + def plants(self, student): + try: + index = self.students.index(student) + except ValueError: + raise NoSuchStudentException( + f"Žiak '{student}' nemá pridelený záhon." + ) from None + + start = index * 2 + return [ + PLANT_NAMES[code] for row in self.rows for code in row[start : start + 2] + ] +