Boucle Python

Résolu/Fermé
anaisanais - Modifié le 13 déc. 2021 à 20:35
jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 - 17 déc. 2021 à 15:42
Bonjour,
J'ai un devoir à rendre qui consiste à répéter un script déjà écrit, à l'intégrer dans une boucle.
Le script en question est :

A = input ("Écrivez un mot")
B = input ("Écrivez un autre mot")
C = input ("Écrivez un dernier mot")

print ("Le mot 1 est :", A, "; son nombre de lettres est :")
D = (len (A))
print (D)
print ("Le mot 2 est :", B, "; son nombre de lettres est :")
E = (len (B))
print (E)
print ("Le mot 3 est :", C, "; son nombre de lettres est :")
F = (len (C))
print (F)

moyenne=(D+E+F)/3
print("La moyenne des lettres est de :", moyenne)

Puis je dois l'intégrer dans une boucle de ce style :
 
for i in range(5):

    rep=input("Voulez-vous continuer?")
    if rep=="non":
        break
    print(i)


Mais je n'y suis pas arrivée. Je pense que le problème est dans la première ligne puisque je dois faire comprendre à l'ordinateur que ce que je veux faire répéter est mon programme d'en haut mais je n'ai aucune connaissance en informatique et mon professeur nous a dit que si nous n'y arrivions pas, Internet nous aiderait.
Je vous remercie par avance de votre aide.

3 réponses

jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231
13 déc. 2021 à 22:53
Bonjour,

Tu pourrais déplacer les lignes 1 à 16 en ligne 21, dans la boucle.

Ou si tu as vu les fonctions, créer une fonction comportant les lignes 1 à 16, et appeler la fonction en ligne 21
0
Je n'ai pas vu les fonctions.

J'ai intégré les lignes 1 à 16 dans la boucle (à la ligne 21 comme vous m'avez dit) mais j'obtiens une erreur en ligne 2 :

File "main.py", line 2
A = input ("Écrivez un mot")
^
IndentationError: expected an indented block


Mon code étant le suivant :


for i in range(5):
A = input ("Écrivez un mot")
B = input ("Écrivez un autre mot")
C = input ("Écrivez un dernier mot")

print ("Le mot 1 est :", A, "; son nombre de lettres est :")
D = (len (A))
print (D)
print ("Le mot 2 est :", B, "; son nombre de lettres est :")
E = (len (B))
print (E)
print ("Le mot 3 est :", C, "; son nombre de lettres est :")
F = (len (C))
print (F)

moyenne=(D+E+F)/3
print("La moyenne des lettres est de :", moyenne)
    rep=input("Voulez-vous continuer?")
    if rep=="non":
        break
    print(i)


Merci d'avance
0
jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231
Modifié le 14 déc. 2021 à 16:48
Si tu déplaces les lignes dans la boucle, il faut leur rajouter une indentation pour bien exprimer que c'est un bloc qui dépend de la boucle. Dans Python, plus que dans d'autres langages, l'indentation est primordiale.

D'ailleurs pour bien présenter ton code sur le forum, avec l'indentation, il y a la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼
permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature (C, Python, Shell, ...).

Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

0
Bonjour!
En ce qui concerne l'indentation sur cette page j'ai réussi, mais ce n'était pas le but. J'ai fait quelques recherches sur Internet et j'ai trouvé qu'il me fallait faire 4 espaces pour chaque ligne à mettre dans la boucle. J'ai réussi, je vous remercie!

for i in range(5):
A = input ("Écrivez un mot")
B = input ("Écrivez un autre mot")
C = input ("Écrivez un dernier mot")

print ("Le mot 1 est :", A, "; son nombre de lettres est :")
D = (len (A))
print (D)
print ("Le mot 2 est :", B, "; son nombre de lettres est :")
E = (len (B))
print (E)
print ("Le mot 3 est :", C, "; son nombre de lettres est :")
F = (len (C))
print (F)

moyenne=(D+E+F)/3
print("La moyenne des lettres est de :", moyenne)
    rep=input("Voulez-vous continuer?")
    if rep=="non":
        break
    print(i)
0
jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231
17 déc. 2021 à 15:42
là ton source sous cette forme ne marcherait pas.

L'indentation, décalage par rapport à la marge, c'est la terminologie employée pour tes "4 espaces". D'ailleurs 4, c'est ce qui est généralement préconisé, mais cela pourait être 1,2,3 ... du moment que toutes les lignes d'un bloc sont alignées sur la gauche.
0