Titel: Verwenden Sie Python, um alle geraden Zahlen innerhalb von 100 auszudrucken
Das erste Stück Code:
n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
Ergebnis der Codeausführung: Unendliche Drucknummer 2
Zweiter Code:
n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
i = 2*n
Ergebnis der Codeausführung: korrekt gedruckt
Meine Frage:
Warum ist das vom ersten Codeteil ausgegebene Ergebnis falsch, der zweite Codeteil fügt jedoch nur i=2*n zur while-Schleife hinzu und das Ergebnis ist korrekt? Ist es möglich, dass im ersten Teil des Codes, wo n+=1 ist, n den Wert von i nicht ändern kann, während n ständig 1 hinzufügt? Warum?
在循环中,没有执行
i = 2*n
,它的值又怎么会改变. 只有执行了相应的语句,才会改变的.初始赋值
i = 2*n
,i
的值不会动态的随n
的改变而改变,只有执行了相应的语句才会改变.是的,第一段代码n加1并没有改变i的值,i一直是2.
只要条件满足True,就一直循环。
第一段的条件一直是 i < 100, 即 2 < 100, 满足条件,所以会不断循环。