Boucle Python

Résolu
anaisanais -  
jee pee Messages postés 41493 Date d'inscription   Statut Modérateur Dernière intervention   -
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 41493 Date d'inscription   Statut Modérateur Dernière intervention   9 709
 
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
anaisanais
 
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 41493 Date d'inscription   Statut Modérateur Dernière intervention   9 709
 
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
anaisanais
 
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 41493 Date d'inscription   Statut Modérateur Dernière intervention   9 709
 
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