Bonjour à tous,
Je débute sur Python et ai créer un petit programme liste de courses avec des fonctions d'ajout, suppression etc d'éléments dans une liste. Tout fonctionne comme je le souhaite mais j'ai tout de même un message d'exception.
Souhaitant que tout soit propre et conventionnel j'aimerai comprendre et debugger ceci.
J'en appelle à votre aide et vous remercie par avance.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
liste = []
 
#Fonction ajouter un élément
def ajouter():
    element_ajout = ""
    while element_ajout == "":
        element_ajout = input("Quel est le nom de l'élément à ajouter ? ")
    else:
        liste.append(element_ajout)
        print(f"L'élément {element_ajout} a bien été ajouté à la liste.")
        liste_courses()
 
#Fonction supprimer un élément
def supprimer():
    element_supprime = ""
    while element_supprime == "":
        element_supprime = input("Quel est le nom de l'élément à supprimer ? ")
    else:
        if element_supprime in liste:
            liste.remove(element_supprime)
            print(f"L'élément {element_supprime} a bien été supprimé de la liste.")
        else :
            print("Cet élément n'est pas dans la liste, voici les éléments de la liste :")
            for i in range(0, len(liste)) :
                print(f"{i+1} - {liste[i]}")
    liste_courses()
 
#Fonction afficher liste de courses
def afficher():
    if liste == []:
        print("Votre liste est vide.")
 
    for i in range(0, len(liste)) :
        print("Voici le contenu de votre liste de courses: ")
        print(f"{i+1} - {liste[i]}")
    liste_courses()
 
#Fonction vider la liste
def vider():
    vide = ""
    while vide == "":
        vide = input("Voulez-vous supprimer tous les éléments de la liste ? o/n ")
    if vide == "o":
        del liste[0:len(liste)]
        print("La liste a bien été vidée.")
        liste_courses()
    else:
        liste_courses()
 
#Fonction quitter le programme
def sortir():
    sortir = ""
    while sortir == "":
        sortir = input("Voulez-vous vraiment quitter le programme ? o/n ")
        if sortir == "o":
            break
        print("A bientôt !")
        liste_courses()
    else:
        liste_courses()
 
#Fonction du choix de l'action
def liste_courses():
    print("")
    print("Choisissez parmi les 5 options suivantes: ")
    print("1: Ajouter un élément à la liste")
    print("2: Supprimer un élément de la liste")
    print("3: Afficher les éléments de la liste")
    print("4: Vider la liste")
    print("5: Quitter")
 
    choix = ""
    while choix == "":
        choix = input("Quel est votre choix ? ")
 
    if choix == "1":
        ajouter()
 
    elif choix == "2":
        supprimer()
 
    elif choix == "3":
        afficher()
 
    elif choix =="4":
        vider()
 
    elif choix =="5":
        sortir()
liste_courses()
Et juste avant que cela se lance si je scrolle l'invité de commande je constate cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Quel est le nom de l'élément à ajouter ? Traceback (most recent call last):
  File "c:\Users\Bob\Desktop\Python_exos\python_test.py", line 92, in <module>
    liste_courses()
  File "c:\Users\Bob\Desktop\Python_exos\python_test.py", line 79, in liste_courses
    ajouter()
  File "c:\Users\Bob\Desktop\Python_exos\python_test.py", line 9, in ajouter
    element_ajout = input("Quel est le nom de l'élément à ajouter ? ")
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt
Cependant le code se lance ensuite et fonctionne parfaitement.

Merci beaucoup.