Tôi tìm thấy câu hỏi này về hành vi lặp bằng Python:Tại sao không QtConsole echo next()?
Python list iterator behavior and next(iterator)
Khi tôi gõ vào đoạn code:
a = iter(list(range(10)))
for i in a:
print a
next(a)
vào jupyter-qtconsole
nó trả về:
0
2
4
6
8
chính xác như Martijn Pieters nói điều đó nên khi người thông dịch không lặp lại lời kêu gọi tới next(a)
.
Tuy nhiên, khi tôi chạy cùng mã một lần nữa trong phiên dịch Bash tôi và IDLE, mã in:
0
1
2
3
4
5
6
7
8
9
ra cửa sổ Console.
Tôi chạy mã:
import platform
platform.python_implementation()
trong cả ba môi trường và tất cả họ đều nói rằng tôi chạy 'CPython'
.
Vậy tại sao QtConsole chặn cuộc gọi next(a)
khi IDLE và Bash không?
Nếu trợ giúp, tôi đang chạy Python 2.7.9 trên Mac OSX và sử dụng phân phối Anaconda.