Óvodakert

Óvodakert

Könnyű

Bevezetés

Az óvodai csoport éppen azt tanulja, hogyan lehet növényeket termeszteni. Az óvó néni úgy gondolta, jó ötlet lenne, ha a gyerekek magokat kapnának, hogy elültessék és megnövesszék őket a földben. Ezért a gyerekek kis poharakat tettek az ablakpárkányokra, és minden pohárba egy-egy fajta növényt ültettek. A gyerekek négyféle mag közül választhatták ki a kedvencüket: fű, lóhere, retek és ibolya.

Utasítások

A feladatod, hogy egy diagram alapján meghatározd, hogy az óvodai osztály melyik gyereke mely növényekért felelős.

Az osztályba 12 gyerek jár:

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

Négyféle magot ültetnek el:

Növény Kódolás a diagramban
Grass G
Clover C
Radish R
Violet V

Minden gyerek négy poharat kap, soronként kettőt:

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

A tanár a poharakat a gyerekek nevének ábécésorrendje szerint osztja ki, ami azt jelenti, hogy Alice következik elsőként, Larry pedig utolsóként.

Íme egy példadiagram, amely Alice növényeit mutatja:

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

Az első sorban, az ablakokhoz legközelebb egy violet és egy radish található. A második sorban egy radish és némi grass.

A programod a növényeket balról jobbra kapja meg, az ablakokhoz legközelebbi sorral kezdve. Ebből meg kell tudnia határozni, hogy melyik növény melyik tanulóhoz tartozik.

Például ha azt kapja bemenetként, hogy a kert így néz ki:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Akkor ha Alice növényeit kérdezik tőle, ezt kell visszaadnia:

  • Violets, radishes, violets, radishes

Ha viszont Bob növényeit kérdezik, ez lesz az eredmény:

  • Clover, grass, clover, clover

Hogyan épül fel ez a feladat a Python-kurzusban?

A feladat tesztjei azt várják, hogy a programodat egy Garden class-ként valósítsd meg (lásd még: classes). Ha még nem ismered a Python osztályait, ez a Real Python útmutató jó további kiindulópont lehet.

A class-ednek implementálnia kell egy plants nevű method-ot, amely argumentumként egy tanuló nevét kapja, és visszaadja a tanulóhoz tartozó növénynevek list-jét.

Konstruktorok

A példakert létrehozása:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Ez a tesztekben így jelenne meg: Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").

Ahhoz, hogy ez a reprezentáció működjön, a class-ednek implementálnia kell egy __init__() speciális metódust. Ha nem ismered a __init__()-et vagy a konstruktorokat, a Python dokumentációjának osztály- és példányobjektumok című része részletesebb magyarázatot ad.

Alapértelmezett paraméterek

Néhány tesztben a tanulók egy list-jét adják át argumentumként az __init__()-nek. Ennek felül kell írnia a feladatkiírásban megadott tizenkét tanulós névsort. Mindkét utasításnak működnie kell az __init__() metódusoddal:

# 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"]) 

Az egyik megközelítés, hogy a tanulók list-jét alapértelmezett argumentummá alakítod; a Python dokumentációja részletesen ír a default parameters-ről, miközben a függvénydefiníciókat is elmagyarázza.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Óvodakert feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.