Projet liste de course
Bonjour,
Excusez-moi de vous déranger, mais en travaillant sur le script de la création de la liste, j'ai dû changer la première commande celle d'ajouter un élément à la liste de courses. J'ai essayé plusieurs éléments avec la fonction .extend ([]) ça marche bien mais lorsque j'entre l'option 2 celle de retirer un élément ça me renvoie le message qu'il n'ya aucun élément dans la liste. Et pourtant quand je refais la même manipulation avec .append() j' obtiens bien les résultats attendus. Ceci lorsque je rentre le choix 2 je peux retirer un élément et l'application continue de tourner.
Ma question est de savoir si toutes les conditions sont liées? ou alors s'il faut rajouter une ligne de code pour que lorsque j'entre le choix 2 je puisse retirer un élément de ma liste de courses.
Merci.
En fait je vous transfère ce que j'ai fait et j'ai mis un petit commentaire, En surbrillance vous allez voir ce que je vous dis lorsque je lance l'application au niveau du choix numéro 2
import sys
LISTE = []
MENU = """ Choisissez parmi les 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
👉 Faites votre choix : """
MENU_CHOICES = ["1", "2", "3", "4", "5"]
while True:
user_choice = ""
while user_choice not in MENU_CHOICES:
user_choice = input(MENU)
if user_choice not in MENU_CHOICES:
print("Veuillez entrer une option valide")
if user_choice == "1":
item = input("Entrez les noms des éléments à ajouter dans la liste des courses : ")
LISTE.extend([item]) #j'ai essayé de changer à ce niveau pour ajouter plus d'un élement
print(f" les élément {item} ont bien été rajouté à votre liste.")
elif user_choice == "2":
item = input("Entrez le nom de l'élément à retirer de la liste des courses : ")
if item in LISTE:
LISTE.remove(item)
print(f"l'élément {item} a bien été retiré de votre liste de course.")
else:
print(f"L'élément {item} n'est pas dans la liste.")
elif user_choice == "3":
if LISTE:
print("Voici le contenu de votre liste : ")
for i, item in enumerate(LISTE, 1):
print(f"{i}. {item}")
else:
print("Votre liste ne contient aucun élément.")
elif user_choice == "4":
LISTE.clear()
print("La liste a été vidé de son contenu")
elif user_choice == "5":
print("A bientôt !")
sys.exit()
print("-" * 50)
Bonjour Daniel,
Lorsque tu fais le choix 2 et que tu retires un élément: si ensuite tu fais le choix 3 pour re afficher la liste, tu verras qu'elle a été mise à jour.
Si tu ne voyais pas la liste à jour juste après le choix 2 c'est parce que la liste affichées était le résultat du print précédent il me semble.
Dis nous si cela résout bien ton problème.
Bonjour,
En fait ça ne résout pas mon problème car lorsque je rentre plusieurs éléments avec la fonction extend([]), et après je sélectionne l'option 2 pour retirer un élément de la liste, ça me renvoie le print de votre liste ne contient aucun élément et pourtant il y'a des éléments que j'ai rentré.
Merci
Bonjour Daniel,
tu ne pourras pas ajouter de cette manière plusieurs éléments.
Si tu veux le faire il faudrait que tu fasses quelque chose du genre:
if user_choice == "1":
items = input("Entrez le nom des éléments à ajouter séparés par une virgule:\n")
for item in items.split(","):
LISTE.append(item)
Et au lieu de rentrer un seul élément quand le input se lance, tu fais:
pommes,fraise,gel douche
le split(",") va te découper la chaine de caractère entre chaque virgule. Normalement il faudrait gérer les cas où au final l'utilisateur ne renseigne pas les éléments séparés par une virgule mais on sort un peu du cadre de l'exo.
Dis moi si c'est bon pour toi.
Bonjour Pierre-André,
Je suis entrain de refaire l'exercice, certes ça sortait un peu du cadre de ce qui nous était demandé, mais j'essaie de mettre en pratique les notions assimilées jusqu'ici. Là nous avons l'occasion de créer une liste, cependant la liste ne va pas comporter un seul élément. Généralement une liste prend plusieurs éléments du coup je voudrais avois un script qui me permette de faire ça sans toutefois me perdre dans les notions.
Je reviendrai vers toi une fois que j'aurais lancé le script et je te dirai comment il se comporte. Je suis entrain de l'exécuter dans un interpréteur python à l'occurrence IDLE.
Hello Pierre-André,
J'ai refait mon script et comme la dernière fois j'ai encore le même problème avec l'option 2(retirez un élément de la liste). En fait dans la première option j'ai l'impression que ça considère tous les éléments comme une seule entité. du coup lorsque je dois retirer des éléments de la liste, il me renvoie le else (l'élément n'est pas dans votre liste de courses).
voici en pièce jointe une capture d'écran de l'interpréteur et du ce que j'ai comme retour.
Hello,
de ce que je vois quand tu affiches ta liste ton item Poires contient un "." . Du coup quand tu tapes "Poires" il ne le trouve pas car l'item de ta liste c'est "Poire." avec un "." . aussi on dirait qu'il y a des espaces. Le code c'est toujours le même si je veux tester chez moi ?
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte