Rumah  >  Soal Jawab  >  teks badan

Mengulangi data dengan penjana berjalan dalam fail dan IDLE memberikan hasil yang tidak konsisten,

Menggunakan penjana untuk mengulang data membina masalah yang hilang, dan kod yang sama berjalan dengan hasil yang tidak konsisten:

  1. Hasil berjalan dalam mod fail ialah: 5 2 1 0

  2. Python disertakan dengan IDLE dan hasilnya ialah: 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梦2681 hari yang lalu542

membalas semua(1)saya akan balas

  • 迷茫

    迷茫2017-05-18 11:03:04

    Jangan ubah suai objek yang dilalui, kerana ini akan menyebabkan kekeliruan indeks dan gagal mencapai hasil yang kita inginkan Anda boleh menggunakan enumerate untuk melihat perubahan dalam indeks semasa proses traversal

    for index, n in enumerate(c):
        # index 为取到的索引值
        print(index, n)
        if n == 5:
            c.send(3)
            

    balas
    0
  • Batalbalas