Titre : Utilisez Python pour imprimer tous les nombres pairs inférieurs à 100
Le premier morceau de code :
n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
Résultat de l'exécution du code : impression infinie numéro 2
Deuxième code :
n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
i = 2*n
Résultat de l'exécution du code : imprimé correctement
Ma question :
Pourquoi le résultat imprimé par le premier morceau de code est-il erroné, mais le deuxième morceau de code ajoute simplement i=2*n à la boucle while et le résultat est correct ? Est-il possible que dans le premier morceau de code, où n+=1, n ne puisse pas changer la valeur de i alors que n ajoute constamment 1 ? Pourquoi?
Dans la boucle, il changera sans exécuter le changement de
.i = 2*n
,它的值又怎么会改变. 只有执行了相应的语句,才会改变的.初始赋值
i = 2*n
,i
的值不会动态的随n
Il ne changera que si l'instruction correspondante est exécutéeOui, ajouter 1 à n dans le premier morceau de code ne change pas la valeur de i, i vaut toujours 2.
Tant que la condition est vraie, la boucle continuera.
La condition du premier paragraphe a toujours été i < 100, c'est-à-dire 2 < 100, ce qui satisfait à la condition, il continuera donc à boucler.