我知道这样做是错误的,但是我使用的是python 3,但是使用的是python 2的书。
上面写着,

>>>range(2,7)

将显示
[2,3,4,5,6]

但我知道它不会显示上面的输出,我想。所以我试着:
>>>>print(range(2,7))

Ta da-显示如下:
range(2,7)

看起来这是从p2到p3的变化之一,所以我尝试了:
list(range(2,7))

这一个在空闲时工作正常,但在长编码的记事本上不正常。最后我尝试了:
print(list(range(2,7)))

它显示了一些与我的意图相似的东西…我做得对吗?这是唯一的写法吗?

最佳答案

在空闲情况下,您正在空闲的pyshell窗口中运行代码。这是在运行交互式解释器。在交互模式中,python会立即解释您输入的每一行,并显示通过评估您输入的语句以及任何写入标准输出或标准错误的内容而返回的值。对于python 2,range()返回一个列表,正如您在python 3中发现的,它返回一个iterablerange()对象,您可以使用它来创建一个列表对象或在迭代上下文中的其他地方使用它。python 3range()与python 2的xrange()相似。
当您在记事本等编辑器中编辑文件时,您正在编写脚本文件;当您在Python解释器中运行文件时,整个脚本将被解释为一个单元并作为一个单元运行,即使它只有一行长。在屏幕上,您只看到写入标准输出(即“print()”)或标准错误(即错误回溯)的内容;在交互模式下,您看不到每个语句的评估结果。因此,在您的示例中,当从脚本文件运行时,如果不打印评估某些内容的结果,您将看不到它。
python教程对此进行了一些讨论。

09-25 17:01
查看更多