4
votes

Pourquoi "i" ne peut-il pas être manipulé dans la boucle for

Pourquoi:

2
4
6
8
10

renvoie:

1
2
3
4
5
6
7
8
9
10

au lieu de:

for i in range(10):
 i += 1
 print(i)

?

Voici quelques détails si d'autres étaient nécessaires.


0 commentaires

3 Réponses :


2
votes

vous devez utiliser les étapes de votre plage:

2
4
6
8
10

sortie:

for i in range(2,11,2):
    print(i)


0 commentaires

10
votes
iterator = iter(range(10))
try:
    while True:
        i = next(iterator)
        i += 1
        print(i)
except StopIteration:
    pass

0 commentaires

2
votes

i est attribué à chaque itération de boucle en écrasant toutes les modifications apportées à sa valeur.

 i = 0 # first iiteration
 i += 1
 print(i)

 i = 1 # second iiteration
 i += 1
 print(i)

 i = 2 # third iiteration
 i += 1
 print(i)

 # etc up to i = 9

équivaut à:

for i in range(10):
    i += 1
    print(i)


0 commentaires