Résolue

Avis exercice liste de course

# Boucles # Listes # Correction de code

Bonjour,


J'en suis actuellement à l'exercice de la liste de course, après avoir regardé la correction je trouve mon code bien plus lourd que celui proposé. Par exemple, je dois dans chaque condition réécrire la variable qui renvoi au menu principal (ici choix = input(menu)) au risque de rester bloquer à l'intérieur alors que ce n'est clairement pas le cas dans la correction. Pourriez-vous me donner votre avis et si possible m'indiquer comment alléger ma version ?


Merci d'avance,


Voici ma version de l'exercice :


-------------------------------------------------------------------------------------

menu = """Choisissez parmi les 5 options suivantes :

        1 : Ajouter un élément à la liste

        2 : Retirer un élément de la liste

        3 : Afficher la liste

        4 : Vider la liste

        5 : Quitter

        Quel est votre choix ? """

menu_choix = ["1", "2", "3", "4", "5"]

liste_course = []

choix = ""


while not choix in menu_choix:

    choix = input(menu)


while choix in menu_choix:

    if choix == "1":

        ajout = input("Que souhaitez-vous ajouter à la liste ? ")

        liste_course.append(ajout)

        print(f"L'item '{ajout}' à bien été ajouté à la liste")

        choix = input(menu)

       

    elif choix == "2":

        retirer = input("Que souhaitez-vous retirer de la liste ? ")

        if not retirer in liste_course:

            print(f"L'item '{retirer}' n'est pas dans la liste")

            choix = input(menu)

        else:

            liste_course.remove(retirer)

            print(f"L'item {retirer} a bien été supprimé de la liste")

            choix = input(menu)


    elif choix == "3":

        if liste_course == []:

            print("La liste est vide")

        else:

            for index, value in enumerate(liste_course):

                print(f"{index} : {value}")

        choix = input(menu)


    elif choix == "4":

        liste_course.clear()

        print("La liste de course a bien été supprimé")

        choix = input(menu)

       

    elif choix == "5":

        print("A bientôt !")

        break


Salut Jérôme (ps: j'adore ton avatar =D il est génial ...),


ton code est pas mal déjà. Je retirerais le premier while il te suffit d'initialiser ta variable choix avec une qui existe.

Ensuite pas besoin de relancer à chaque fois le choix vu qu'après chaque passage de condition il retourne dans le while. En gardant la structure et la logique de ton code, je ferais quelque chose comme ceci:


menu = """Choisissez parmi les 5 options suivantes :
        1 : Ajouter un élément à la liste
        2 : Retirer un élément de la liste
        3 : Afficher la liste
        4 : Vider la liste
        5 : Quitter
        Quel est votre choix ? """
menu_choix = ["1", "2", "3", "4", "5"]
liste_course = []
choix = "3"
while choix in menu_choix:
    choix = input(menu)
    
    if choix == "1":
        ajout = input("Que souhaitez-vous ajouter à la liste ? ")
        liste_course.append(ajout)
        print(f"L'item '{ajout}' à bien été ajouté à la liste")
       
    elif choix == "2":
        retirer = input("Que souhaitez-vous retirer de la liste ? ")
        if not retirer in liste_course:
            print(f"L'item '{retirer}' n'est pas dans la liste")
        else:
            liste_course.remove(retirer)
            print(f"L'item {retirer} a bien été supprimé de la liste")

    elif choix == "3":
        if liste_course == []:
            print("La liste est vide")
        else:
            for index, value in enumerate(liste_course):
                print(f"{index} : {value}")

    elif choix == "4":
        liste_course.clear()
        print("La liste de course a bien été supprimé")
       
    elif choix == "5":
        print("A bientôt !")
        break

Merci pour ta réponse. Je n'avais pas compris qu'après chaque passage dans un if on retourne au début du while. C'est plus clair avec les explications :-)

Inscris-toi

(c'est gratuit !)

Inscris-toi

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

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

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