Die Verwendung eines Generators zum Iterieren von Daten führt zu einem fehlenden Problem, und derselbe Code wird mit inkonsistenten Ergebnissen ausgeführt:
Das Ergebnis der Ausführung im Dateimodus ist: 5 2 1 0
Python wird mit IDLE geliefert und das Ergebnis ist: 5 3 2 1 0
def countdown(n):
while n >= 0:
newvalue = (yield n)
if newvalue is not None:
n = newvalue
else:
n -= 1
c = countdown(5)
for n in c:
print(n)
if n == 5:
c.send(3)
不要对正在遍历的对象进行修改, 那样会导致索引混乱, 无法达到我们想要的结果, 可以通过enumerate查看遍历过程中, 索引的变化