Liste de course
# liste de course le 05/05/2024
# Docstring
liste_de_courses = []
print(f"==>> liste_de_courses: {liste_de_courses}")
# Affichage des choix
print("1: Ajouter un élément à la liste de courses")
print("2: Retirer un élément de la liste de courses")
print("3 :Afficher les éléments de la liste de courses")
print("4: Vider la liste de courses")
print("5: Quitter le programme")
# la boucle while
while True :
option_list = input("Choisir option: ")
if option_list.isalpha() or int(option_list) >5:
print("Erreur de saisie recommencer :")
continue
elif int(option_list) == 1:
print("1: Ajouter un élément à la liste de courses")
liste_ajout = input("rajouter : ")
liste_de_courses.append(liste_ajout)
print(f"{liste_ajout} a bien été rajouté à la liste.")
continue
elif int(option_list) == 2:
print("2: Retirer un élément de la liste de courses")
liste_remove = input("quelle élément retirer :")
liste_de_courses.remove(liste_remove)
print(f"{liste_remove} à bien été retiré.")
continue
elif int(option_list)== 3:
if len(liste_de_courses) == 0 :
print("la liste de course est vide")
elif len(liste_de_courses) >0:
for i, valeur in enumerate(liste_de_courses, 1):
print(i, valeur)
continue
elif int(option_list) == 4:
print("4: Vider la liste de courses")
liste_de_courses = []
print("la liste de course est vide.")
continue
if len(liste_de_courses) == 0 :
print("la liste de course est vide")
elif len(liste_de_courses) >0:
print("Votre liste de course :", end = " ")
for i, valeur in enumerate(liste_de_courses, 1):
print(f"{i, valeur}", end = " ")
print("Au revoir")
break
# fin
Je ne vois aucune erreur de mon côté, tout à l'air fonctionnel !
Je peux néanmoins te suggérer des axes d'améliorations :)
-
La ligne "print(f"==>> liste_de_courses: {liste_de_courses}")" n'est pas nécéssaire étant donné que ta liste de courses sera toujours vide au début de l'exécution du programme
-
Tu pourrais ajouter une base de données (par exemple en sqlite3 en local pour commencer) afin de stocker ta liste de courses, même après arrêt & redémarrage du programme, et ainsi ta première ligne deviendrai intéressante.
-
Et ensuite, tu pourrais également passer tout ton programme en programmation orientée objet, avec des classes et des attributs.
Si tu as des questions, n'hésites pas!
Salut Claude,
Je rajoute quelques éléments à la réponse de Kévin :
-
Attention avec l'utilisation de
isalpha
, cela vérifie uniquement si la chaîne de caractères contient des lettres de A à Z. En l'état ton script plante si par exemple je donne un symbole ($, %, ?, etc). Dans ce cas-ci il est préférable de vérifier si l'élément envoyé par l'utilisateur est un nombre (avecisdigit
). -
Pour la suppression d'un élément dans ta liste, la méthode
remove
va retourner une erreur si tu essaies d'enlever un élément qui n'est pas dans ta liste. Tu pourrais vérifier si c'est le cas avant pour éviter les erreurs. -
Pour cette partie :
if len(liste_de_courses) == 0 :
print("la liste de course est vide")
elif len(liste_de_courses) >0:
for i, valeur in enumerate(liste_de_courses, 1):
print(i, valeur)
Tu peux grandement simplifier ces conditions en évitant l'utilisation de la fonction len
. Une liste vide est évaluée comme False
, tu peux donc juste faire :
if liste_de_courses :
for i, valeur in enumerate(liste_de_courses, 1):
print(i, valeur)
else:
print("la liste de course est vide")
- Pour la suppression de tous les éléments dans la liste, pour un souci de compréhension j'utiliserais
clear
plutôt que de re-créer un vide liste en mémoire. Les deux fonctionnent, mais avecclear
tu indiques plus explicitement tes intentions.
Parfait pour le reste et bravo d'avoir fait tout ça 👏 Bonne continuation dans le parcours :)
Salut Kévin & Thilbaut ,
Merci bien pour vos réponses et j'ai pris bon note :)
Je réecrit ta solution Thilbaut en évitant de repasser les videos de la solution, il faut que je consolide les choses.
Et il faut que je m'habitue a lire les blocs d'instruction dans les boucles avec les indentations . :)
Inscris-toi
(c'est gratuit !)

Tu dois créer un compte pour participer aux discussions.
Créer un compte person