Tracks
/
Python
Python
/
Übungen
/
Kindergarten-Garten
Kindergarten-Garten

Kindergarten-Garten

Einfach

Einführung

Die Kindergartengruppe lernt gerade etwas über das Anbauen von Pflanzen. Die Lehrkraft fand es eine gute Idee, der Klasse Samen zu geben, damit sie sie in die Erde pflanzen und großziehen können. Zu diesem Zweck haben die Kinder kleine Becher auf die Fensterbänke gestellt und in jeden Becher eine Pflanzensorte gepflanzt. Aus vier verfügbaren Samensorten durften die Kinder ihre Favoriten auswählen: grass, clover, radishes und violets.

Anleitung

Deine Aufgabe ist es, anhand eines Diagramms zu bestimmen, für welche Pflanzen jedes Kind in der Kindergartenklasse verantwortlich ist.

In der Klasse sind 12 Kinder:

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

Es werden vier verschiedene Samensorten gepflanzt:

Pflanze Kodierung im Diagramm
Grass G
Clover C
Radish R
Violet V

Jedes Kind bekommt vier Becher, zwei pro Reihe:

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

Ihre Lehrkraft teilt die Becher den Kindern alphabetisch nach ihren Namen zu. Das heißt: Alice kommt zuerst und Larry zuletzt.

Hier ist ein Beispieldiagramm, das Alices Pflanzen zeigt:

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

In der ersten Reihe, am nächsten zu den Fenstern, hat sie violet und radish. In der zweiten Reihe hat sie radish und grass.

Deinem Programm werden die Pflanzen von links nach rechts übergeben, beginnend mit der Reihe, die am nächsten zu den Fenstern liegt. Daraus soll es bestimmen können, welche Pflanzen zu welchem Kind gehören.

Wenn ihm zum Beispiel gesagt wird, dass der Garten so aussieht:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Fragt man dann nach Alices Pflanzen, sollte es Folgendes zurückgeben:

  • Violets, radishes, violets, radishes

Fragt man dagegen nach Bobs Pflanzen, ergibt sich:

  • Clover, grass, clover, clover

Wie diese Übung im Python-Track aufgebaut ist

Die Tests für diese Übung erwarten, dass dein Programm als class namens Garden umgesetzt wird (siehe auch classes). Wenn du mit Klassen in Python noch nicht vertraut bist, ist dieses Real-Python-Tutorial vielleicht ein guter zusätzlicher Einstieg.

Deine class sollte eine method namens plants implementieren, die den Namen eines Schülers als Argument entgegennimmt und die list der Pflanzennamen zurückgibt, die zu diesem Schüler gehören.

Konstruktoren

Das Anlegen des Beispielgartens:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

würde in den Tests als Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV") dargestellt.

Damit diese Darstellung funktioniert, muss deine class eine __init__() spezielle Methode implementieren. Wenn du mit __init__() oder Konstruktoren nicht vertraut bist, gibt Klassen- und Instanzobjekte aus der Python-Dokumentation eine ausführlichere Erklärung.

Standardparameter

In einigen Tests wird eine list von Schülern als Argument an __init__() übergeben. Diese sollte die zwölf Schüler umfassende Liste aus der Aufgabenstellung überschreiben. Beide folgenden Anweisungen müssen mit deiner __init__()-Methode funktionieren:

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

Eine Möglichkeit ist, die Schüler-list zu einem Standardargument zu machen; die Python-Dokumentation beschreibt default parameters ausführlich bei der Erklärung von Funktionsdefinitionen.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Python Exercism

Bereit, mit Kindergarten-Garten zu starten?

Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.