Résolue

Un avis pour améliorer mon code =D

# Boucles # Variables # Scripting

Il fonctionne c'est super ! mais je me suis pris la tête avec enumerate()
au début je l'ai écrit ainsi:

for i, liste in enumerate(liste, start=1):     
            print(f"{i}. {liste}")

Je comprennais pas pour quoi j'avais une erreur après avoir tout vérifier !
ça a mit du temps mais j'ai compris ;) que j'avais besoin d'une "variable externe" > liste"d"

import sys
liste = []  
print("      ###  la liste de course  ###")

while True:
    print("""Choississez parmi les 5 options suivantes :
-------------------------------------------
1: Ajouter un élément à la liste
2: Retirer un élément à la liste
3: Afficher la liste
4: Vider la liste
5: Quitter""")
    option = input("👉 Votre choix : ")

    if option == "1":   # ajouter
        ajout = input("Entrez un élément à ajouter à la liste de course : ")
        liste.append(ajout)
        print(f"L'élément {ajout} a bien été ajouté à la liste")    

    elif option == "2":     # retirer
        retir = input("Que voulez vous retirer : ")
        #if liste.count(retir) > 0:
        if retir in liste:
            liste.remove(retir)
            print(f"L'élément {retir} a bien été retiré de la liste")           
        #elif liste.count(retir) == 0:
        else:
            print(f"L'élément {retir} ne fait pas partie de la liste.")   

    elif option == "3":     # afficher
        print("Voici le contenu de votre liste :")
        for i, listed in enumerate(liste, start=1):     
            print(f"{i}. {listed}") 

    elif option == "4":     # vider
        liste.clear()
        print("La liste a été vidé")   

    elif    option == "5":      # quitter
        print("A bientôt ! 😉")
        exit()   # break
print("-"*50)

Bonjour,

Pour commencer, il serait bon d'ajouter des espaces pour aérer le code :

  • donc ajouter un saut de ligne juste après les imports

  • au dessus de option = input("👉 Votre choix : ")

  • à la fin, au dessus du print("-"*50)

Au niveau du exit(), il serait bon d'utiliser le sys.exit() qui est importé en haut du script, car il faut savoir que exit() et sys.exit() sont deux méthodes différentes.

En l'occurrence, sys.exit() est conseillé pour un code mis en production alors que exit() ne doit servir que pour un développement temporaire.

Pour plus d'informations, voici un lien très intéressant sur les différentes façons de quitter son code : Python exit commands: quit(), exit(), sys.exit() and os._exit()

De plus, il est possible d'intégrer directement le "'À bientôt" en argument de exit(), cela évite le print() :

sys.exit("A bientôt ! 😉")

Au niveau de le série de if elif, il serait bon d'ajouter un else au cas où l'utilisateur réponde par un autre nombre qui ne ferait pas parti de la liste ou encore entrerait autre chose qui n'était pas du tout attendu comme un mot etc... La règle d'or c'est de ne jamais faire confiance à ce qu'entre l'utilisateur.

Donc :

else:
  print("Votre choix n'est pas reconnu, veuillez recommencer !")

Au niveau de la dernière ligne print("-"*50), elle ne sert à rien car l'option 5 fait sortir du programme et n'exécutera jamais la ligne en dessous.

Il serait donc mieux de remplacer le exit() par un break afin sortir de cette boucle while infinie et passer à l'exécution du code du dessous :

    elif option == "5":      # quitter
        print("A bientôt ! 😉")
        break   # break

print("-"*50)

Le reste du code est plutôt propre, peut être ajouter quelques "\n" par-ci par-là dans les print() pour aérer la présentation de l'interface par des sauts de lignes, mais cela n'est qu'un détail mineur et juste une expérience utilisateur.

Bravo en tout cas ! 🙂

Salut,

pas grabnd chose à ajouter de plus que bucdany ! Est ce clair pour toi ?

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.