"break" ne s'arrête pas
Résolu
JML
-
JML -
JML -
Bonjour,
Je suis un nouveau apprenant de python..
J'ai tapé le code suivant pour obtenir
Mais le terminal m'a affiché une série de
... où il m'a affiché une série ininterrompue de
Quel est le problème?
Merci par avance.
Je suis un nouveau apprenant de python..
J'ai tapé le code suivant pour obtenir
1 2 3 4 5:
i = 1 while i < 7: print(i) if i == 5: break i += 1
Mais le terminal m'a affiché une série de
1et ne voulait pas s'arrêter (
1 1 1....). Et c'est la même chose pour le code suivant :
i = 1 while i < 7: print(i) i = i+2
... où il m'a affiché une série ininterrompue de
2au lieu de
2 4 6. Le mot clé
breakne fonctionne pas et je suis obligé de fermer le programme à chaque fois pour l'arrêter.
Quel est le problème?
Merci par avance.
3 réponses
Bonjour
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
JML
Merci beaucoup..
bonjour,
pour ton premier code, je suspecte que la boucle while ne contient que le print()
pour ton second code, je pense que tu ne nous as pas montré le code qui produit ces "2". je ne vois pas par quel miracle le code que tu montres pourrait assigner 2 à i.
pour ton premier code, je suspecte que la boucle while ne contient que le print()
pour ton second code, je pense que tu ne nous as pas montré le code qui produit ces "2". je ne vois pas par quel miracle le code que tu montres pourrait assigner 2 à i.
Bonjour,
J'ai corrigé ton message #1 car sans l'indentation, on ne peut pas comprendre d'où vient le problème (comme l'a souligné Whismeril dans son message #2). Je t'invite donc dans tes futurs messages à tenir compte de cette remarque.
Dans le premier bout de code
L'incrémentation de (
Une fois l'indentation corrigée, le code se comporte comme tu le souhaites :
Ce programme s'écrit plus naturellement :
Dans le second bout de code
Je n'obtiens pas le même résultat que toi, chez moi il écrit
Ce programme s'écrit plus naturellement :
Bonne chance
J'ai corrigé ton message #1 car sans l'indentation, on ne peut pas comprendre d'où vient le problème (comme l'a souligné Whismeril dans son message #2). Je t'invite donc dans tes futurs messages à tenir compte de cette remarque.
Dans le premier bout de code
L'incrémentation de (
i += 1) n'est pas exécuté car en dehors de la boucle
whilecomme en témoigne l'indentation. Du coup le test
if i == 5n'est jamais vérifié et le
breakn'est jamais exécuté.
Une fois l'indentation corrigée, le code se comporte comme tu le souhaites :
i = 1 while i < 7: print(i) if i == 5: break i += 1
Ce programme s'écrit plus naturellement :
for i in range(1, 6): print(i)
Dans le second bout de code
Je n'obtiens pas le même résultat que toi, chez moi il écrit
1 3 5ce qui est le comportement normal vu ce que tu as écrit. Vu ton objectif, il faudrait initialiser
ià
2. Note que plutôt que d'écrire
i = i + 2tu peux directement écrire
i += 2:
i = 2 while i < 7: print(i) i += 2
Ce programme s'écrit plus naturellement :
for i in range(2, 7, 2): print(i)
Bonne chance