Maison > Questions et réponses > le corps du texte
L'utilisation d'un générateur pour itérer les données crée un problème manquant, et le même code s'exécute avec des résultats incohérents :
Le résultat de l'exécution en mode fichier est : 5 2 1 0
Python est livré avec IDLE et le résultat est : 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)
迷茫2017-05-18 11:03:04
Ne modifiez pas l'objet parcouru, car cela entraînerait une confusion dans l'index et ne parviendrait pas à obtenir les résultats souhaités. Vous pouvez utiliser enumerate pour afficher les modifications dans l'index pendant le processus de parcours
.for index, n in enumerate(c):
# index 为取到的索引值
print(index, n)
if n == 5:
c.send(3)