Rumah > Soal Jawab > teks badan
Menggunakan penjana untuk mengulang data membina masalah yang hilang, dan kod yang sama berjalan dengan hasil yang tidak konsisten:
Hasil berjalan dalam mod fail ialah: 5 2 1 0
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)
迷茫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)