recherche

Maison  >  Questions et réponses  >  le corps du texte

Itérer sur les données avec le générateur exécuté dans le fichier et IDLE donne des résultats incohérents,

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梦2776 Il y a quelques jours618

répondre à tous(1)je répondrai

  • 迷茫

    迷茫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)
            

    répondre
    0
  • Annulerrépondre