Треки
/
Python
Python
/
Вправи
/
Город у дитячому садку
Город у дитячому садку

Город у дитячому садку

Легка

Вступ

Клас у дитячому садку вивчає вирощування рослин. Вихователю спало на думку дати класу насіння, щоб посадити його та виростити в землі. Для цього діти розставили маленькі скляночки на підвіконнях і посадили в кожну скляночку один вид рослини. Діти могли обрати свої улюблені з чотирьох доступних видів насіння: grass, clover, radishes і violets.

Вказівки

Визначте за діаграмою, за які рослини відповідає кожна дитина в класі дитячого садка.

У класі 12 дітей:

  • Alice, Bob, Charlie, David, Eve, Fred, Ginny, Harriet, Ileana, Joseph, Kincaid і Larry.

Висаджують чотири різні види насіння:

Рослина Кодування на діаграмі
Grass G
Clover C
Radish R
Violet V

Кожна дитина отримує чотири чашки, по дві в кожному рядку:

[window][window][window]
........................ # each dot represents a cup
........................

Учитель розподіляє чашки між дітьми за алфавітом їхніх імен, тобто Alice стоїть першою в списку, а Larry стоїть останнім.

Ось приклад діаграми з рослинами Alice:

[window][window][window]
VR......................
RG......................

У першому рядку, найближчому до вікон, у неї є фіалка і редиска. У другому рядку в неї редиска і трохи трави.

Програма отримає рослини зліва направо, починаючи з рядка, найближчого до вікон. З цього вона зможе визначити, які рослини належать кожній дитині.

Наприклад, якщо сказано, що садок має такий вигляд:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Тоді, якщо запитати про рослини Alice, вона повинна повернути:

  • Violets, radishes, violets, radishes

А якщо запитати про рослини Bob, то отримаємо:

  • Clover, grass, clover, clover

Як цю вправу влаштовано в треку Python

Тести для цієї вправи очікують, що програму реалізовано як class Garden (див. також classes). Якщо ми не знайомі з класами в Python, цей туторіал від Real Python може стати гарним додатковим місцем, з якого варто почати.

class має реалізувати method із назвою plants, який приймає імʼя учня як аргумент і повертає list назв рослин, що належать цьому учневі.

Конструктори

Створення саду з прикладу:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

у тестах буде представлено як Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").

Щоб таке представлення працювало, class має реалізувати __init__() спеціальний метод. Якщо ми не знайомі з __init__() чи конструкторами, докладніше це пояснює розділ обʼєкти класів і екземплярів з документації Python.

Типові параметри

У деяких тестах до __init__() як аргумент передають list учнів. Це має замінити перелік із дванадцяти учнів, наведений в умові задачі. Обидві ці інструкції мають працювати з методом __init__():

# Make a garden based on the default 12-student roster.
Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV") 

# Make a garden based on a 2-student roster.
Garden("VRCC\nVCGG", students=["Valorie", "Raven"]) 

Один з підходів - зробити list учнів типовим аргументом; документація Python докладно описує default parameters, пояснюючи визначення функцій.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Python Exercism

Час розпочати Город у дитячому садку?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Python, а також 17 концепцій146 вправ та справжнє наставництво від людей, і все це безкоштовно.