Faire une boucle sur python qui relance le programme
Résolu/Fermé
mery-mery
Messages postés
11
Date d'inscription
samedi 2 avril 2022
Statut
Membre
Dernière intervention
8 mai 2022
-
3 avril 2022 à 02:52
mery-mery Messages postés 11 Date d'inscription samedi 2 avril 2022 Statut Membre Dernière intervention 8 mai 2022 - 4 avril 2022 à 02:41
mery-mery Messages postés 11 Date d'inscription samedi 2 avril 2022 Statut Membre Dernière intervention 8 mai 2022 - 4 avril 2022 à 02:41
A voir également:
- Faire une boucle sur python qui relance le programme
- Programme demarrage windows 10 - Guide
- Citizen code python avis - Accueil - Outils
- 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
- Programme (x86) ✓ - Forum Windows
6 réponses
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
Ambassadeur
1 556
3 avril 2022 à 19:12
3 avril 2022 à 19:12
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
mery-mery
Messages postés
11
Date d'inscription
samedi 2 avril 2022
Statut
Membre
Dernière intervention
8 mai 2022
4 avril 2022 à 02:41
4 avril 2022 à 02:41
merci ça a marcher ,le problème est résolue .
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 3 avril 2022 à 10:47
Modifié le 3 avril 2022 à 10:47
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
mery-mery
Messages postés
11
Date d'inscription
samedi 2 avril 2022
Statut
Membre
Dernière intervention
8 mai 2022
3 avril 2022 à 13:17
3 avril 2022 à 13:17
#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>
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 3 avril 2022 à 13:43
Modifié le 3 avril 2022 à 13:43
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))
mery-mery
Messages postés
11
Date d'inscription
samedi 2 avril 2022
Statut
Membre
Dernière intervention
8 mai 2022
3 avril 2022 à 13:47
3 avril 2022 à 13:47
est-ce possible d’expliquer plus en détail , car la j’arrive pas bien a comprendre .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 3 avril 2022 à 14:08
Modifié le 3 avril 2022 à 14:08
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
mery-mery
Messages postés
11
Date d'inscription
samedi 2 avril 2022
Statut
Membre
Dernière intervention
8 mai 2022
Modifié le 3 avril 2022 à 14:55
Modifié le 3 avril 2022 à 14:55
non moi j’aimerai bien garder le script comme il est, je veux juste ajouter une boucles c’est tous.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
3 avril 2022 à 18:57
3 avril 2022 à 18:57
Comme tu veux ... :-)
3 avril 2022 à 13:57