Problème avec le break

Résolu/Fermé
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 - 30 oct. 2020 à 11:49
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 - 1 nov. 2020 à 15:45
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 :

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

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 11:55
Tu n'as pas bien lu le tuto,

voila l'aspect que cela doit avoir
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

0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 11:56
c'est effectivement ce que j'avais sur le "prévisualiser" pourquoi me l'a-t-il modifié ?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931 > dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 12:03
parce que tu n'as pas bien lu le tuto..... et donc pas appliqué comme il faut
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 > Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024
30 oct. 2020 à 12:06
ah oui peut-être '^^ toutes mes excuses
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 12:02
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 sur
while 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?
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 12:04
ohh oui je vois ! il faudrait que je mette à partir de "if" tout le bloc indenté à While, c'est ça ?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 12:07
oui.
Poste, le bloc while corrigé et on verra les autres problèmes
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
Modifié le 30 oct. 2020 à 12:54
c'est fait, j'espère que c'est correct
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 12:38
C'est fait?
je ne vois pas ton nouveau code
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 12:41
il a été supprimé par un modérateur :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 12:43
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
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 12:44
ah bon ?
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
30 oct. 2020 à 12:49
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 12:54
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
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 12:57
Donc peux-tu m'expliquer en quoi je me suis moqué de l'aide que vous m'apportez ?
Peut-être l'ai-je fais mais sans m'en rendre compte, auquel cas veux-tu bien m'excuser ?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931 > dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 13:17
ha 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 cite
boucle while (avec w minuscule)


Poste le bloc while corrigé
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 > Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024
30 oct. 2020 à 13:26
donc alors repartons de zéro, tu veux bien ? s'il te plaît ?
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 13:29
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
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 13:31
est-ce bon cette fois ?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 13:50
OK,

tu ouvres un projet neuf, tu y mets ce code et tu le lances.
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 15:31
ok je te dit ce que ça me donne :)
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 15:36
Alors du coup il me donne plus d'erreur, c'est déjà ça, merci :)
Mais en revanche, le programme fait n'importe quoi
a droite, le script et à gauche la console... par exemple, pour le 0, il me demande plusieurs fois...et pour le 1, je peux rentrer le choix à l'infini, il ne s'arrête pas

0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 17:26
Je t'ai de ne mettre que la boucle while dans un programme neuf.....

0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 18:14
et du coup bah ça marche j'ai plus d'erreur, j'ai juste comme quoi choix n'est pas défini mais c'est logique
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 18:41
Tu demandes de remplir la variable nombre et tu testes la valeur de choix, tu trouves que c'est logique?

Vraiment?
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 18:44
c'est vrai qu'en regardant de plus près, honnêtement je sens qu'il y a un truc qui va pas mais je serais incapable de dire quoi exactement
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 18:58
Le truc qui ne va pas c'est que tu ne lis pas ce qu'on te dit
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 20:14
ou alors que je comprends mal, nuance, mais euu...? peux-tu éclaircir un peu plus s'il te plait ?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 20:41
Je peux difficilement être plus clair
Tu demandes de remplir la variable nombre et tu testes la valeur de choix,

0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
30 oct. 2020 à 21:04
oui non ca j'avais compris, c'est moi qui me suis mal exprimé, je voulais plutôt dire je ne vois pas comment changer ca
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
30 oct. 2020 à 21:29
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.
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 09:28
donc 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)" ?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931 > dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 09:31
Essaye
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 > Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024
31 oct. 2020 à 09:35
et ca marche
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
31 oct. 2020 à 09:41
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.
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 09:43
bah cette fois oui tout marche et il n'y a pas de bug mais j'ai modifié mon programme, j'ai insérer une fonction elif
https://img-19.ccm2.net/XB0AZpj_RX8st1YjteIK9k0o8TU=/05b9991487fa479d8c508ffe774766b6/tmp/Capture.PNG
|fancy]
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
31 oct. 2020 à 09:51
Bien pour le elif.

Cela dit peux tu sans arrêter le logiciel entrer 2, puis 1, puis 0?
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 09:52
non il faut que je redémarre le programme
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
31 oct. 2020 à 09:55
donc ça ne marche pas.

Pourquoi?
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 09:58
parce que j'ai mis des break car sinon ca me faisait le truc infini
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
31 oct. 2020 à 10:15
Non, c’est pas à cause ds break que ça ne marche pas.

Plus haut, tu as écrit
donc 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
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
Modifié le 31 oct. 2020 à 10:18
non effectivement je les ai supprimés car je les avais définis deux fois, raison pour laquelle il me demandait 2 fois justement

en revanche, voilà mon programme principal : il me met qu'il y a une indentation incorrecte au niveau du if mais je ne vois pas vrmt pk il est indenté dans le while non ?

0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 10:40
peux-tu poster du texte et pas des images? en veillant à utiliser les balises de code.
0
dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
31 oct. 2020 à 10:44
hum 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 ?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 10:45
tu n'avais pas cette erreur avant. quel est le changement qui a provoqué ce message d'erreur?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931 > dazdingue Messages postés 35 Date d'inscription vendredi 30 octobre 2020 Statut Membre Dernière intervention 1 novembre 2020
31 oct. 2020 à 10:54
Ha ça y est tu recommences à te foutre de nous......
0