Avis exercice liste de course
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
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte