Problème avec le break
Résolu
Bonjour, moi aussi j'ai un problème avec mon programme avec le break (c'est un programme visant à créer un répertoire téléphonique, j'ai un niveau de 1ère en NSI)
Le voici :
Merci à ceux qui pourraient m'aider, je rappelle, l'erreur étant 'break' outside loop
Le voici :
def menu ():
choix = input("0-quitter\n1-écrire dans le répertoire\n2-rechercher dans le
répertoire\nVotre choix ?")
return choix
choix = input("0-quitter\n1-écrire dans le répertoire\n2-rechercher dans le répertoire\n\nVotre choix ?")
with open('fichier.txt', 'a') as f:
f.write(choix)
choix = int(choix)
While True:
nombre = input("Votre choix")
nombre = int(nombre)
if choix == 0:
print("Vous avez quitté cette page")
break
else:
continue
if choix == 1:
print("Nom (0 pour terminer): \nTéléphone: ")
#insérer le programme de saisie
break
else:
continue
if choix == 2:
print("Entrez un nom : \nLe numéro recherché est : ")
#insérer le programme de recherche
break
else:
continue
Merci à ceux qui pourraient m'aider, je rappelle, l'erreur étant 'break' outside loop
18 réponses
Résumé de la discussion
Un problème survient avec un programme Python destiné à gérer un répertoire téléphonique, lié à l'emploi du break en dehors d'une boucle et à la gestion des choix. Le souci s'explique par une organisation du code où le break est atteint hors d'une boucle et par une saisie du choix en dehors du bloc itératif, déclenchant l'erreur. Des conseils préconisent de lire le choix à l'intérieur d'une boucle while, d'utiliser des blocs conditionnels distincts et d'éviter la duplication de code pour que break interrompe correctement la boucle. En cas de correction, restructurer le flux en plaçant la saisie et les actions dans la même boucle, vérifier l'entrée avant conversion et assurer que break reste à l'intérieur d'une boucle unique.
-
Tu n'as pas bien lu le tuto,
voila l'aspect que cela doit avoirdef menu (): choix = input("0-quitter\n1-écrire dans le répertoire\n2-rechercher dans le répertoire\nVotre choix ?") return choix choix = input("0-quitter\n1-écrire dans le répertoire\n2-rechercher dans le répertoire\n\nVotre choix ?") with open('fichier.txt', 'a') as f: f.write(choix) choix = int(choix) While True: nombre = input("Votre choix") nombre = int(nombre) if choix == 0: print("Vous avez quitté cette page") break else: continue if choix == 1: print("Nom (0 pour terminer): \nTéléphone: ") #insérer le programme de saisie break else: continue if choix == 2: print("Entrez un nom : \nLe numéro recherché est : ") #insérer le programme de recherche break else: continue
-
-
@dazdingueparce que tu n'as pas bien lu le tuto..... et donc pas appliqué comme il faut
-
@Utilisateur anonymeah oui peut-être '^^ toutes mes excuses
-
-
L'indentation est primordiale en python, un bloc de code s'arrête quand l'indentation diminue.
Donc une boucle while (avec w minuscule) commence à la ligne suivante avec une indentation supérieure et s'arrête juste avant la première ligne dont l'indentation est inférieure ou égale au mot clé while.
Ton message d'erreur dit que le mot clé break n'est pas dans une boucle
Focalisons nous surwhile True: nombre = input("Votre choix") nombre = int(nombre) if choix == 0: print("Vous avez quitté cette page") break else: continue
Vois tu d'où viens le problème?
-
oui.
Poste, le bloc while corrigé et on verra les autres problèmes
-
C'est fait?
je ne vois pas ton nouveau code
-
Ha oui, si tu ouvres 50 discussions, y’a un moment où tu va te faire rappeler à l’ordre.
C’est dans cette discussion qu’il faut le poster
-
ModérateurBonjour
ah bon ?
Ben oui, lire la charte ...
https://www.commentcamarche.net/infos/25845-charte-d-utilisation-de-commentcamarche-net/
-
tu sais comment ça s'appelle un gosse qui vient chercher de l'aide et se moque de ceux qui l'aide:
Un connard, et un connard on ne l'aide pas.
Adieu
-
-
@dazdingueha bon?
oui oui je l'ai lu, mais.... => (ça ne me concerne pas ou je m'en fous...) par 2 fois
Si tu veux du respect, faut commencer par en montrer et l'insolence c'est tout le contraire
Un autre bon point serait de tenir compte de ce qu'on te demande/dit
Je citeboucle while (avec w minuscule)
Poste le bloc while corrigé
-
@Utilisateur anonymedonc alors repartons de zéro, tu veux bien ? s'il te plaît ?
-
-
while True: nombre = input("Votre choix") nombre = int(nombre) if choix == 0: print("Vous avez quitté cette page") break else: continue if choix == 1: print("Nom (0 pour terminer): \nTéléphone: ") #insérer le programme de saisie break else: continue if choix == 2: print("Entrez un nom : \nLe numéro recherché est : ") #insérer le programme de recherche break else: continue -
OK,
tu ouvres un projet neuf, tu y mets ce code et tu le lances.
-
Je t'ai de ne mettre que la boucle while dans un programme neuf.....
-
Tu demandes de remplir la variable nombre et tu testes la valeur de choix, tu trouves que c'est logique?
Vraiment?
-
Le truc qui ne va pas c'est que tu ne lis pas ce qu'on te dit
-
Je peux difficilement être plus clair
Tu demandes de remplir la variable nombre et tu testes la valeur de choix,
-
Option 1 tu demandes de remplir la variable nombre et tu testes le contenu de la variable nombre
Option 2 tu demandes de remplir la variable choix et tu testes le contenu de la variable choix.
Je pensais franchement pas qu'on allait passer 8 messages sur 2 variables au d'une
Désolé de te le dire mais, si tu veux résoudre la 3eme erreur qui est plus compliquée que les 2 premières, va falloir commencer à réfléchir un peu.
-
-
@dazdingueEssaye
-
@Utilisateur anonymeet ca marche
-
-
Bon maintenant
Toujours, uniquement avec la boucle while.
Tu lances, tu entres 0
Tu observes
Si besoin tu relances, tu entres 1
Tu observes
Si besoin tu relances et tu entres 2
Tu observes.
Et tu reviens faire part de tes observations et si tu en conclues quelque chose tu le dis.
-
Bien pour le elif.
Cela dit peux tu sans arrêter le logiciel entrer 2, puis 1, puis 0?
-
donc ça ne marche pas.
Pourquoi?
-
Non, c’est pas à cause ds break que ça ne marche pas.
Plus haut, tu as écritdonc est-ce que ce serait une solution alors de modifier le "nombre = input etc" et "nombre = int(nombre)" par "choix = input etc" et "choix = int(choix)" ?
Mais tu n’as pas fait exactement ça
-
-
Contributeur@dazdinguepeux-tu poster du texte et pas des images? en veillant à utiliser les balises de code.
-
@yg_behum je peux essayer pour le texte oui et les balises de code, c'est bien transformer le texte par exemple en python, c'est ça ?
-
Contributeur@dazdinguetu n'avais pas cette erreur avant. quel est le changement qui a provoqué ce message d'erreur?
-
@dazdingueHa ça y est tu recommences à te foutre de nous......
-