Itérer sur les données avec le générateur exécuté dans le fichier et IDLE donne des résultats incohérents,
过去多啦不再A梦
过去多啦不再A梦 2017-05-18 11:01:04
0
1
593

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 :

  1. Le résultat de l'exécution en mode fichier est : 5 2 1 0

  2. 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)

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(1)
迷茫

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)
        
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal