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,44 +1,45 @@
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 = {
"G":"Tráva", "G": "Tráva",
"C":"Ďatelina", "C": "Ďatelina",
"R":"Reďkovky", "R": "Reďkovky",
"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]