小编Jac*_*ire的帖子

QtConsole为什么不回显next()?

我在Python中发现了关于迭代器行为的这个问题:

Python列表迭代器行为和下一个(迭代器)

当我输入代码时:

a = iter(list(range(10)))
for i in a:
    print a
    next(a)
Run Code Online (Sandbox Code Playgroud)

进入jupyter-qtconsole它返回:

0
2
4
6
8
Run Code Online (Sandbox Code Playgroud)

就像Martijn Pieters所说的那样,当翻译不响应号召时next(a).

但是,当我在我的Bash解释器和IDLE中再次运行相同的代码时,代码打印出来:

0
1
2
3
4
5
6
7
8
9
Run Code Online (Sandbox Code Playgroud)

到控制台.

我跑了代码:

import platform
platform.python_implementation()
Run Code Online (Sandbox Code Playgroud)

在所有三个环境中,他们都说我跑了'CPython'.

那么为什么QtConsole next(a)在IDLE和Bash没有时会抑制调用呢?

如果它有帮助,我在Mac OSX上运行Python 2.7.9并使用Anaconda发行版.

python interpreter python-internals jupyter

7
推荐指数
1
解决办法
55
查看次数

标签 统计

interpreter ×1

jupyter ×1

python ×1

python-internals ×1