arrow_back
Résolue thumb_up

Liste de course

# Boucles # Listes # Docstring
# 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 suis rincer, j'ai passé mon dimanche la dessus :)

Kévin Silliau

Mentor

Hello Claude !

Quel est ton soucis exactement avec ton code ? Comme ça je pourrais t'aider à y avoir plus clair :)

hello Kévin,
C'est surtout pour voir, si vous trouvez des grosse erreurs ?!?
merci :)

Kévin Silliau

Mentor

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 (avec isdigit).

  • 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 avec clear 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 !)

Inscris-toi

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

Créer un compte person

Rechercher sur le site

open_in_new

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.