Résolue

LISTE DE COURSE

# Boucles # Correction de code # Variables

Ma version très différentes de la correction après 4h de casse tête

mais fier.


# Initialisations des variables
demande_client ="0"
liste_de_course = []

# Démarrage de la boucle While
while demande_client.isdigit():
    print("_" * 70)
    print ("""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""")
    demande_client = input("Votre choix : ")    
# vérification si le nombre est correcte    
if demande_client < "1" :
        print("nombre non valide!")
    elif demande_client >= "6":
        print("La demande n'est pas dans la liste")
# Ajouter un élément
elif demande_client == "1" :
        nouveau_element = input("Que voulez-vous rajouter à la liste de course ? ")
        liste_de_course.append(nouveau_element)
# Enlever un élément
elif demande_client == "2" : 
        retirer_element = input("Quel élément est à retirer ? ")
        if retirer_element in liste_de_course :           
            liste_de_course.remove(retirer_element)
        else :
            print("cette article n'est pas dans la liste de course")
# Voir la liste 
elif demande_client == "3" : 
        if not liste_de_course == []:
            print("Voici votre liste de course : ")
            for i in liste_de_course :
                modif_index_liste_de_course = liste_de_course.index(i)
                modif_index_liste_de_course +=1
print(f"{modif_index_liste_de_course}. {i}")
        else :
            print("Votre liste de course est vide!")
# Vider la liste
elif demande_client == "4" :
        liste_de_course.clear()
        print("La liste de course a été vidée de son contenu.")
# Sortir du Script
elif demande_client == "5" :
        print("À bientôt!")
        break

Hello Sébastien!


Tu as pu tester ton script?

En regardant celui-ci, il y a pas mal de soucis d'indentations (je ne sais pas si c'est dû au copié/collé).

Si je peux me permettre juste 2 petites remarques rapides :) :

+ ta boucle while semble inversée. Tant que l'utilisateur donne un chiffre, il ne sort jamais de la boucle. Je pense qu'il te faudrait plutôt un :

while not demande_client.isdigit():


+ tu peux également simplifier ta condition:

if not liste_de_course == []:

par

if not liste_de_course:


Oui, c'est un copié/collé de mon visual studio code sur le FAQ de doctring

j'ai testé le code et il répond à toute les demandes de l'exercice.

Mais je vais tester avec les indications que tu m'as fournis pour voir.

Pour le isdigit() la boucle tourne et vérifie tant que j'ai un chiffre (comme ça pas de lettres venant perturbé le script) apres grace à mes conditions (en l'occurrence la n°5) je permet de break la boucle

Ah ok! Autant pour moi! Je comprends: tout est intégré dans ta boucle while... c'est juste que, comme l'indentation est partie avec le copié/collé, je n'avais pas du tout compris la structure de ton script! :)

éffectivement j'ai essayer de renvoyer le code avec la bonne indentation, mais lors de l'envoi, le message parviens sans les indentations au if et elif.

Salut Sébastien ! Désolé pour le délai de réponse, je viens de regarder ton script, bravo !


La seule chose qui peut ne pas fonctionner c'est la comparaison entre des chaînes de caractères qui contiennent des nombres. Si tu fais par exemple :

>>> "10">"2"
False


Tu vois que le résultat n'est pas correct, car Python ne fera pas une comparaison selon les valeurs numériques contenues dans les chaînes de caractères. Tu peux donc te retrouver avec des cas de figures qui ne fonctionnent pas comme tu le souhaiterais.

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.