Update u5/kindergarten_garden.py

This commit is contained in:
Maksym Liashenko 2026-10-13 12:46:17 +00:00
parent 3933e94b78
commit cd4b7bef8a

View File

@ -1,23 +1,20 @@
class NoSuchStudentException(Exception): class NoSuchStudentException(Exception):
"""Raised when plants are requested for a student not assigned a plot."""
pass pass
class Garden: class Garden:
DEFAULT_STUDENTS = [ DEFAULT_STUDENTS = [
"Alena" "Alena",
"Boris" "Boris",
"Cyril" "Cyril",
"Daniel" "Daniel",
"Eva" "Eva",
"František" "František",
"Gitka" "Gitka",
"Helena" "Helena",
"Ivana" "Ivana",
"Jozef" "Jozef",
"Karol" "Karol",
"Ladislav" "Ladislav",
] ]
PLANT_MAP = { PLANT_MAP = {
@ -27,18 +24,22 @@ class Garden:
"V": "Fialky", "V": "Fialky",
} }
def __init__(self, diagram, students=DEFAULT_STUDENTS): def __init__(self, diagram, students=None):
self.students = sorted(students)
self.rows = diagram.split("\n") self.rows = diagram.split("\n")
if students is None:
num_students = len(self.rows[0]) // 2
self.students = sorted(self.DEFAULT_STUDENTS[:num_students])
else:
self.students = sorted(students)
def plants(self, student_name): def plants(self, student_name):
if student_name not in self.students: if student_name not in self.students:
raise NoSuchStudentException("Ziak neexistuje") raise NoSuchStudentException("Ziak neexistuje")
index = self.student.index(student_name) index = self.students.index(student_name)
start = index * 2 start = index * 2
end = start + 2 end = start + 2
plant_chars = self.rows[0][start:end] +self.rows[1][start.end] plant_chars = self.rows[0][start:end] + self.rows[1][start:end]
return [self.PLANT_MAP[char] for char in plant_chars] return [self.PLANT_MAP[char] for char in plant_chars]