Code python : comment retourner au début du programme
Résolu/FerméPhil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 6 janv. 2023 à 11:48
- Os.system('clear') python 3
- Clear dns cache - Guide
- Clear type - Guide
- Picasa 3 - Télécharger - Albums photo
- Citizen code python avis - Accueil - Outils
- Photorecit 3 - Télécharger - Visionnage & Diaporama
6 réponses
3 janv. 2023 à 18:26
Salut,
tu dois intégrer ton choix dans ta boucle...
3 janv. 2023 à 18:37
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.
3 janv. 2023 à 18:20
bonjour,
la boucle doit inclure toutes les instructions à répéter. quelles sont-elles?
Modifié le 4 janv. 2023 à 10:54
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
4 janv. 2023 à 17:09
Merci pour votre réponse, je suis débutant je ne comprend pas cette partie de code pouvez me l'expliquer
Merci :)
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))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question4 janv. 2023 à 17:15
Mon 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: "))
Modifié le 4 janv. 2023 à 17:48
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
5 janv. 2023 à 18:10
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
Modifié le 5 janv. 2023 à 22:07
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
Modifié le 6 janv. 2023 à 11:49
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
3 janv. 2023 à 23:09
oui tu déplace ta selection de choix en début de while