Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Ce dépôt est archivé. Vous pouvez voir les fichiers et le cloner, mais vous ne pouvez pas pousser ni ouvrir de ticket/demande d'ajout.
 
 
 
 
 
 

66 lignes
1.9 KiB

  1. def parse(entrée_utilisateur):
  2. premiere_lettre = entrée_utilisateur[0]
  3. if premiere_lettre == "+":
  4. return ("ajouter", entrée_utilisateur[2:])
  5. elif premiere_lettre == "-":
  6. return ("supprimer", int(entrée_utilisateur[2:]))
  7. elif premiere_lettre == "x":
  8. return ("marquer_fait", int(entrée_utilisateur[2:]))
  9. elif premiere_lettre == "o":
  10. return ("marquer_non_fait", int(entrée_utilisateur[2:]))
  11. elif premiere_lettre == "q":
  12. return ("quitter", None)
  13. class ChoseAfaire:
  14. def __init__(self, contenu: str, fait: bool):
  15. self.contenu = contenu
  16. self.fait = fait
  17. class PenseBete:
  18. # index commence à 1!
  19. def __init__(self):
  20. self.liste = []
  21. def ajouter(self, chose_à_faire):
  22. self.liste.append(chose_à_faire)
  23. def supprimer(self, index):
  24. del self.liste[index - 1]
  25. def marquer_fait(self, index):
  26. self.liste[index - 1].fait = True
  27. def marquer_non_fait(self, index):
  28. self.liste[index - 1].fait = False
  29. def afficher(self):
  30. for chose_à_faire in self.liste:
  31. if chose_à_faire.fait == True:
  32. print("[x]", chose_à_faire.contenu)
  33. else:
  34. print("[ ]", chose_à_faire.contenu)
  35. def main():
  36. pense_bete = PenseBete()
  37. while True:
  38. pense_bete.afficher()
  39. entrée_utilisateur = input()
  40. action, argument = parse(entrée_utilisateur)
  41. if action == "ajouter":
  42. chose_à_faire = ChoseAfaire(argument, False)
  43. pense_bete.ajouter(chose_à_faire)
  44. elif action == "supprimer":
  45. pense_bete.supprimer(argument)
  46. elif action == "marquer_fait":
  47. pense_bete.marquer_fait(argument)
  48. elif action == "marquer_non_fait":
  49. pense_bete.marquer_non_fait(argument)
  50. elif action == "quitter":
  51. break
  52. main()