Python 3.2 idle:range函数 - 打印还是列表?

Sea*_*ean 7 python printing list range

我知道这是错误的事情,但我使用的是python 3但是用python 2书来研究它.

它说,

>>>range(2,7)
Run Code Online (Sandbox Code Playgroud)

将会呈现

[2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

但我知道它不会显示上面的输出,我想.所以我试过了:

>>>>print(range(2,7))
Run Code Online (Sandbox Code Playgroud)

和ta-da-它显示如下:

range(2,7)
Run Code Online (Sandbox Code Playgroud)

看起来这是从P2到P3的变化之一所以我试过:

list(range(2,7))
Run Code Online (Sandbox Code Playgroud)

这个可以在IDLE上运行正常,但在记事本上用于长编码也不行.所以最后我试过了:

print(list(range(2,7)))
Run Code Online (Sandbox Code Playgroud)

它显示出类似于我的意图...我做得对吗?这是写它的唯一方法吗?

Ned*_*ily 6

在您的IDLE情况下,您正在IDLE的PyShell窗口中运行代码.这是运行交互式解释器.在交互模式下,Python会立即解释您键入的每一行,并通过评估您键入的语句以及写入标准输出或标准错误的任何内容来显示返回的值.对于Python 2,range()返回一个列表,如您所发现的,在Python 3中,它返回一个可迭代range()对象,您可以使用该对象创建列表对象或在迭代上下文中的其他位置使用.Python 3 range()类似于Python 2的xrange().

在记事本等编辑器中编辑文件时,您正在编写脚本文件,当您在Python解释器中运行该文件时,整个脚本将被解释并作为一个单元运行,即使它只有一行.在屏幕上,您只能看到写入标准输出(即" print()")或标准错误(即错误追溯)的内容; 您没有像在交互模式中那样看到每个语句的评估结果.因此,在您的示例中,当从脚本文件运行时,如果您不打印评估某些内容的结果,则您将看不到它.

Python教程在这里谈了一些.