Skip to content

Instantly share code, notes, and snippets.

@Thesola10
Last active January 31, 2022 10:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Thesola10/a0fc3c7774259dc1e8b87179d99ae5c1 to your computer and use it in GitHub Desktop.
Save Thesola10/a0fc3c7774259dc1e8b87179d99ae5c1 to your computer and use it in GitHub Desktop.
bidule orienté objet
#!/usr/bin/env python3
# Un pot de fleurs pour apprendre à coder :)
# © Karim Vergnes <me@thesola.io>
# Sous licence Creative Commons Attribution, NonCommercial, ShareAlike (CC BY,NC,SA)
# https://creativecommons.org/licenses/by-nc-sa/3.0/fr/
class Potdefleur:
couleur = str()
fleurs = list()
date = str()
def __init__(self, couleur):
self.couleur = couleur
print("Tu as créé un pot de fleurs %s" %couleur)
def ajouterFleur(self, fleur):
self.fleurs.append(fleur)
print("Tu as ajouté une %s" %fleur)
def __str__(self):
fleurList = ", ".join(self.fleurs)
arrose = "jamais arrosé" if self.date == "" else "arrosé le %s" %self.date
return "Pot de fleurs %s, %s, contenant : %s" %(self.couleur, arrose, fleurList)
def arroser(self):
from datetime import date
if len(self.fleurs) == 0:
print("Tu n'as pas de fleurs à arroser !")
else:
self.date = str(date.today())
print('Tu as arrosé tes fleurs')
# Exemple : INTRODUCTION
# Implémenter le pot de fleurs avec ajouterFleur(). Omettre lignes 11, 20, et 22 à 28.
# Ligne 21 devient : return "Pot de fleurs %s, contenant : %s" %(self.couleur, fleurList)
# Permet d'apprendre le principe de classes et types.
# L'éducateur doit implémenter Potdefleur et l'expliquer à l'élève.
#
# Exercice 1 : EXERCICE ENCADRÉ
# Ajouter l'arrosage. L'élève doit pouvoir implémenter arroser() et modifier __str__().
# Guider l'élève si nécessaire.
# L'éducateur doit éxecuter, dans l'ordre :
# -> pot = Potdefleur('rouge')
# <- Tu as créé un pot de fleurs rouge
# -> pot.arroser()
# <- Tu n'as pas de fleurs à arroser !
# -> print(pot)
# <- Pot de fleurs rouge, jamais arrosé, contenant :
# -> pot.ajouterFleur("pensée")
# <- Tu as ajouté une pensée
# -> pot.arroser()
# <- Tu as arrosé tes fleurs
# -> print(pot)
# <- Pot de fleurs rouge, arrosé le (aujourd'hui), contenant : pensée
# Tous les retours doivent être comme ci-dessus.
#
# Exercice 2 : EXERCICE LIBRE
# Ajouter un dictionnaire de fleurs. ajouterFleur() doit pouvoir détecter ces fleurs:
# pensée, rose, violette, orchidée
# L'élève doit utiliser if fleur in self.dictionnaire ou équivalent, et refuser sinon.
# Ne pas guider l'élève.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment