Parcours
/
Python
Python
/
Exercices
/
Jardin de maternelle
Jardin de maternelle

Jardin de maternelle

Facile

Introduction

La classe de maternelle apprend à faire pousser des plantes. L'enseignant a jugé bon de donner à la classe des graines à planter et à faire pousser dans la terre. Pour ce faire, les enfants ont disposé de petits gobelets le long des rebords de fenêtre et ont planté un type de plante dans chaque gobelet. Les enfants ont pu choisir leurs préférées parmi quatre types de graines disponibles : gazon, trèfle, radis et violettes.

Instructions

Ta tâche est de déterminer, à partir d'un diagramme, quelles plantes chaque enfant de la classe de maternelle a la charge de cultiver.

La classe compte 12 enfants :

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

Quatre types de graines différentes sont plantés :

Plante Encodage du diagramme
Grass G
Clover C
Radish R
Violet V

Chaque enfant reçoit quatre godets, deux sur chaque rangée :

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

Leur professeur attribue les godets aux enfants par ordre alphabétique de leur prénom, ce qui signifie qu'Alice arrive en premier et Larry en dernier.

Voici un exemple de diagramme qui représente les plantes d'Alice :

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

Dans la première rangée, la plus proche des fenêtres, elle a un violet et un radish. Dans la deuxième rangée, elle a un radish et du grass.

Ton programme recevra les plantes de gauche à droite, en commençant par la rangée la plus proche des fenêtres. À partir de ces informations, il doit pouvoir déterminer quelles plantes appartiennent à chaque enfant.

Par exemple, si on lui indique que le jardin ressemble à ceci :

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Alors, si on lui demande les plantes d'Alice, il doit fournir :

  • Violets, radishes, violets, radishes

tandis que si on lui demande les plantes de Bob, on obtient :

  • Clover, grass, clover, clover

Comment cet exercice est structuré sur le parcours Python

Les tests de cet exercice attendent que ton programme soit implémenté sous la forme d'une class Garden (voir aussi classes). Si tu ne connais pas les classes en Python, ce tutoriel Real Python peut être un bon point de départ supplémentaire.

Ta class doit implémenter une method appelée plants, qui prend le nom d'un élève en argument et renvoie la list des noms de plantes qui appartiennent à cet élève.

Constructeurs

Création du jardin d'exemple :

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

serait, dans les tests, représenté par Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").

Pour que cette représentation fonctionne, ta class devra implémenter une __init__() méthode spéciale. Si tu ne connais pas __init__() ni les constructeurs, la section Objets de classe et objets d'instance de la documentation Python donne une explication plus détaillée.

Paramètres par défaut

Dans certains tests, une list d'élèves est passée en argument à __init__(). Elle doit remplacer la liste des douze élèves fournie dans l'énoncé. Ces deux instructions doivent fonctionner avec ta méthode __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"]) 

Une approche consiste à faire de la list d'élèves un argument par défaut ; la documentation Python décrit en détail les default parameters tout en expliquant les définitions de fonctions.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Python Exercism

Prêt à commencer Jardin de maternelle ?

Inscris-toi sur Exercism pour apprendre et maîtriser Python avec 17 concepts146 exercices, et un vrai mentorat humain, le tout gratuitement.