Faire une boucle sur python qui relance le programme
Résolu
mery-mery
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
mery-mery Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
mery-mery Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,je voulais vous demandez une petite questions en ce qui concerne un problème qui me tracasse . Je suis entrain de faire un tout mini programme, et j'aimerai bien que le programme demande a l'utilisateur si il veut quitter ou bien en continuer , donc si il veut quitter le programme s'éteint ,mais si l'utilisateur dis oui je veux en convertir un autre ben le programme doit se ré-exécuter sans devoir éteindre puis ré-allumer le programme...Je sais pas si j'ai étais très clair, enfin si quelqu'un a une idée qu'il me la fasse partager.
Merci beaucoup!
Merci beaucoup!
A voir également:
- Faire une boucle sur python qui relance le programme
- Citizen code python avis - Accueil - Outils
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Ce programme est écrit en python il construit un mot secret ✓ - Forum Python
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
tu pourrais ajouter ceci en bas de ton module:
Si tu souhaites ne pas changer ton module et faire la boucle dans un autre module, c'est également possible, ainsi:
tu pourrais ajouter ceci en bas de ton module:
continuer = True while continuer: main() d=input("stop (s) ou encore (c)?") if d != "c": continuer = False
Si tu souhaites ne pas changer ton module et faire la boucle dans un autre module, c'est également possible, ainsi:
import modulemain continuer = True while continuer: modulemain.main() d=input("stop (s) ou encore (c)?") if d != "c": continuer = False
Bonjour,
Peux-tu afficher ton code ici, que l'on voie au moins ce que tu as déjà fait
Et l'afficher avec les balises de code:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Peux-tu afficher ton code ici, que l'on voie au moins ce que tu as déjà fait
Et l'afficher avec les balises de code:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
#code pour cryptage de cesar
banner = ''' ██████╗███████╗███████╗ █████╗ ██████╗ ██████╗ ██╗ ██╗ ██╔════╝██╔════╝██╔════╝██╔══██╗██╔══██╗ ██╔══██╗╚██╗ ██╔╝ ██║ █████╗ ███████╗███████║██████╔╝ ██████╔╝ ╚████╔╝ ██║ ██╔══╝ ╚════██║██╔══██║██╔══██╗ ██╔═══╝ ╚██╔╝ ╚██████╗███████╗███████║██║ ██║██║ ██║██╗██║ ██║ ╚═════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ''' print(banner) def recebeModo(): while True: option = input("veux tu cripter ou descripter? ") option = option.lower() if option == 'c' or option == 'cripter' or option == 'descripter' or option == 'd': return option print("valeur invalide . soit ('cripter', 'c') ou bien ('descripter', 'd')") def recebeChave(): while True: chave = int(input("valeur de decalage: ")) if 1 <= chave <= 26: break print("valeur invalide ") return chave def geraMsgTraduzida(modo, mensagem, chave): cripto = '' if modo == 'c' or modo == 'cripter': for i in mensagem: if 'A' <= i <= 'Z': if ord(i) + chave > ord('Z'): cripto += chr((ord('A') + chave - (ord('Z')+1 - ord(i)))) else: cripto += chr(ord(i) + chave) elif 'a' <= i <= 'z': if ord(i) + chave > ord('z'): cripto += chr((ord('a') + chave - (ord('z')+1 - ord(i)))) else: cripto += chr(ord(i) + chave) else: cripto += i elif modo == 'd' or modo == 'descripter': for i in mensagem: if 'A' <= i <= 'Z': if ord(i) - chave < ord('A'): cripto += chr(ord('Z') - (chave - (ord(i)+1 - ord('A')))) else: cripto += chr(ord(i) - chave) elif 'a' <= i <= 'z': if ord(i) - chave < ord('a'): cripto += chr(ord('z') - (chave - (ord(i)+1 - ord('a')))) else: cripto += chr(ord(i) - chave) else: cripto += i return cripto def main(): modo = recebeModo() chave = recebeChave() mensagem = input("donner le mot ou le text a traiter: ") print(geraMsgTraduzida(modo, mensagem, chave)) main() <code python></code>
OK,
Moi, je mettrais le contenu de Main() dans une boucle While infinie, et en plus j'afficherai un menu du genre:
1_ Crypter
2_ Quitter
Votre choix :
après la ligne 73
si choix == 1, je continue sur les lignes 74 à 77, et ensuite, avec la boucle, le menu s'affiche à nouveau
si choix == 2, je sors de la boucle donc la fonction se termine et le programme s'arrête
Ceci dit, il faut aussi que tu soignes ton orthographe :-) :-)
veux tu cripter ou descripter,? -> veux tu crypter ou décrypter ?
Sinon, si tu veux faire un menu qui contrôle si on a bien entré un choix valide, et qui repose la question tant que c'est incorrect, tu peux faire comme ça (et supprimer la ligne 74)
Moi, je mettrais le contenu de Main() dans une boucle While infinie, et en plus j'afficherai un menu du genre:
1_ Crypter
2_ Quitter
Votre choix :
après la ligne 73
si choix == 1, je continue sur les lignes 74 à 77, et ensuite, avec la boucle, le menu s'affiche à nouveau
si choix == 2, je sors de la boucle donc la fonction se termine et le programme s'arrête
Ceci dit, il faut aussi que tu soignes ton orthographe :-) :-)
veux tu cripter ou descripter,? -> veux tu crypter ou décrypter ?
Sinon, si tu veux faire un menu qui contrôle si on a bien entré un choix valide, et qui repose la question tant que c'est incorrect, tu peux faire comme ça (et supprimer la ligne 74)
menu = ''' 1 Crypter 2 Décrypter 3 Quitter > ''' choix = '' while(not choix in [1,2,3]): print('\n' + '''Choisissez une option'''.center(50,'*')) choix = int(input(menu))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait, je supprimerais la fonction recebeModo(), et je ferais la fonction Main() comme ceci:
apres, dans les autres fonctions, il faut remplacer les tests sur modo en comparant avec 1 ou 2, et non plus sur les strings
def main(): menu = ''' 1 Crypter 2 Décrypter 3 Quitter > ''' modo = '' while(modo != 3): while(not modo in [1,2,3]): print('\n' + '''Choisissez une option'''.center(50,'*')) modo = int(input(menu)) if(modo == 3): break chave = recebeChave() mensagem = input("donner le mot ou le text a traiter: ") print(geraMsgTraduzida(modo, mensagem, chave)) modo = ''
apres, dans les autres fonctions, il faut remplacer les tests sur modo en comparant avec 1 ou 2, et non plus sur les strings