2
votes

Python 3.X: Appel d'une variable extérieure dans une boucle For imbriquée

J'ai imbriqué une boucle for dans une autre. La première boucle répète simplement cinq fois la deuxième boucle; la deuxième boucle répète cinq fois le même bloc de code simple.

Au total, ces boucles devraient effectuer le même travail vingt-cinq fois.

1. Hello

Je m'attendais à ce que la sortie soit:

1. Hello.
2. Hello.
3. Hello.
4. Hello.
5. Hello.


2 commentaires

Le nombre ne change jamais car vous n'incrémentez jamais x


Pour être clair, vous ajoutez 1 à x dans int (x + 1) mais vous ne stockez pas le résultat dans x . Comme certaines réponses le suggèrent, en séparant le calcul et le stockage x = x + 1 ou x + = 1 de l'impression du résultat print (str (x ) + ". Bonjour") , vous résolvez le problème. Certains langages vous permettraient de tout faire en une seule fois, mais l'utilisation de l'affectation en Python ressemble à l'affectation d'une valeur à un paramètre nommé, donc print (x = x + 1) confond Python et n'est pas très clair pour commencer.


3 Réponses :


0
votes

Vous y êtes presque. Ajoutez simplement une ligne supplémentaire

x = 0

for y in range(0, 5,):
    for z in range(0, 5,):
        print(str(int(x + 1)) + ". Hello")
        x += 1


1 commentaires

Oh, merci, je n'avais pas réalisé que je devais modifier séparément la valeur de la variable lorsque je l'utilisais en boucle.



1
votes

Vous ne mettez pas à jour la valeur de x lorsque vous parcourez.

Essayez ceci:

x = 0

for y in range(0, 5,):
    for z in range(0, 5,):
        x+=1
        print(str(x) + ". Hello")


0 commentaires

0
votes

vous pouvez également utiliser ceci:

   i = 0
for y in range(0, 5):
    for z in range(0, 5):
        i = i+1
        print(str(i) + "." " Hello.")


0 commentaires