Code python : comment retourner au début du programme
RésoluPhil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde, je suis débutant en code, et je dois faire un petit projet ( une liste de course )
Mon programme n'est pas encore totalement au point, avant de faire toute les modifications nécessaires, j'aimerai savoir comment je peux faire pour relancer le programme une fois que l'utilisateur à choisit une option. Je crois qu'il faut utiliser While mais je ne sait pas comment l'intégrer au programme en effet lorsque je lance le programme il me redemande l'option choisit infiniment mais je ne retourne pas au début
Merci d'avance pour votre aide :)
#La liste liste = [] # Ce que l'utilisateur voit print("Choisissez parmi les 5 options suivantes") print("1: Ajouter un element à la liste") print("2: Retirer un element à la liste") print("3: Afficher la liste") print("4: Vider la liste") print("5: Quitter") a = "1" "2" "3" "4" "5" a = input("Votre choix: ") # boucle pour retout au début du programme while True: if a == "1": b = input("Entrez le nom d'un element à ajouter à votre liste de course: ") liste.append(b) print(f"l'élement {b} a bien été ajouté à la liste") elif a == "2": c = input("Retirer un element de la liste: ") if c not in liste: print("L'élement n'est pas dans ma liste") liste.remove(c) print(f"l'élement {c} a bien été supprimé de la liste") elif a == "3": print(liste) elif a == "4": liste.clear elif a == "5": quit() else: print("Entrer non valide !")
- Os.system('clear') python 3
- Ai suite 3 - Télécharger - Optimisation
- Citizen code python avis - Accueil - Outils
- Clear type - Guide
- Clear dns cache - Guide
- Picasa 3 - Télécharger - Albums photo
6 réponses
Bonjour,
Si j'ai bien compris ton problème, tu veux que ton programme se relance une fois que l'utilisateur a choisi une option ?
La boucle "while True" permet de relancer un programme de manière infinie jusqu'à ce que l'utilisateur choisisse l'option de quitter. Essaye de l'intègrer plus haut dans ton programme avant le choix des 5 options.
bonjour,
la boucle doit inclure toutes les instructions à répéter. quelles sont-elles?
Bonjour,
Tu inclus tout dans le while, et même, tu en ajoutes un autre pour contrôler la saisie
(tant que l'on répond mal, le menu se ré affiche pour une nouvelle saisie):
# -*- coding:Utf-8 -*- import os menu = ''' 1 Ajouter 2 Retirer 3 Afficher 4 Afficher 5 Quitter > ''' while(True): choix = 0 while(not choix in [1,2,3,4,5]): os.system('cls' if os.name=='nt' else 'clear') print('\n' + '''Choisissez :'''.center(50,'*')) choix = int(input(menu)) if(choix == 1): ..... elif(choix == 5): break #on sort du while : fin de programme
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionMon but est que l'utilisateur retourne au début du programme au ( a = input "votre choix: ") après avoir fait ce qu'il voulait faire (comme par exemple ajouter un élément dans la liste de course). Il pourra ainsi voir qu'il a bien mis l'élément dans la liste.
Je ne sais pas si je dois effectivement utiliser while True en tout quand je lance mon programme et que je sélectionne 1 et que j'ajoute un élément il me retourne à (" b = input("Entrez le nom d'un element à ajouter à votre liste de course: "))
Explication de mon code:
la boucle extérieure while(True) fait que après avoir choisi 1,2,3 ou 4 dans le menu et donc
exécuté le code correspondant, on remonte à nouveau au menu pour un nouveau choix
si l'on choisit 5, on tombe sur mon instruction break qui nous fait sortir ce ce while et donc le programme s'arrête
.
la boucle intérieure while(not choix .........) fait que si on entre autre chose que 1,2,3,4 ou 5, l'écran s'efface
et on ré affiche le menu jusqu'a ce que l'on entre le bon chiffre
si c'est Ok, on sort de ce while et on continue avec les tests if(choix == 1), etc...
choix = 0 while(not choix in [1,2,3,4,5]): # au début choix = 0, donc on affiche le menu os.system('cls' if os.name=='nt' else 'clear') #effacement de l'écran print('\n' + '''Choisissez :'''.center(50,'*')) choix = int(input(menu)) #affichage de menu pour entrer une valeur # tant que choix est différent de 1,2,3,4 ou 5, on boucle à nouveau # sinon, on sort de ce while
Tu peux tester mon code en y ajoutant ce qu'il faut dans le if(choix == 1) , else, etc ..
tu verras que ça marche
Merci pour votre aide, en effet, c'est l'idée que j'avais au début, créer une boucle while si l'utilisateur ne rentre pas la bonne valeur et le faire retourner au début à la fin de la bonne application de celui ci.
Une dernière petite question, je voudrai savoir la signification des commandes :
os.name=='nt' et center(50,'*'))
Merci encore pour votre aide
os est le module permettant de traiter tout ce qui est en rapport avec l'os, l'operating system,
le système d'exploitation (Windows chez moi)
et donc os.name donne le nom de ton os
os.system('cls') permet d'effacer l'écran, mais j'y ai ajouté un test pour rendre la commande
plus universelle: si c'est Windows, on prend 'cls', sinon, on prends 'clear'
.
center(50,*) est un format d'affichage qui permet d'encadrer le texte à afficher sur 50 caractères au total,
en cadré par des *, comme tu peux le voir sur l'image que j'ai affichée ci-dessus
Bonjour,
Finalement, ca donnerait ceci (j'ai rectifié une ou deux erreurs) :
# -*- coding:Utf-8 -*- import os menu = ''' 1 Ajouter 2 Retirer 3 Afficher 4 Vider 5 Quitter > ''' liste = [] while(True): choix = 0 while(not choix in [1,2,3,4,5]): # os.system('cls' if os.name=='nt' else 'clear') print('\n' + '''Choisissez :'''.center(50,'*')) choix = int(input(menu)) if(choix == 1): el = input("Entrez le nom d'un element à ajouter à votre liste de course: ") liste.append(el) print(f"l'élement {el} a bien été ajouté à la liste") elif(choix == 2): el = input("Element à retirer de la liste: ") if el not in liste: print("L'élement n'est pas dans ma liste") else: liste.remove(el) print(f"l'élement {el} a bien été supprimé de la liste") elif(choix == 3): print(liste) elif(choix == 4): liste.clear() elif(choix == 5): break