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

2024-04-19 22:05:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这样做是错误的,但我使用的是Python3,但在Python2的书中学习它。

上面写着

>>>range(2,7)

将显示

[2,3,4,5,6]

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

>>>>print(range(2,7))

塔达-它显示如下:

range(2,7)

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

list(range(2,7))

这个可以在空闲时正常工作,但在长时间编码的记事本上不正常。最后我试着:

print(list(range(2,7)))

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


Tags: 方法编码错误range意图python3空闲list
3条回答

如果您的唯一目标是恢复列表表示,那么您所做的是正确的。Python 3.0现在将range视为返回迭代器(过去xrange是做什么的)

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

当您在记事本这样的编辑器中编辑文件时,您正在编写脚本文件,当您在Python解释器中运行该文件时,整个脚本将被解释并作为一个单元运行,即使它只有一行长。在屏幕上,您只看到写入标准输出的内容(即“print()”)或标准错误(即错误回溯);您看不到在交互模式下对每个语句求值的结果。因此,在您的示例中,当从脚本文件运行时,如果不打印评估结果,您将看不到它。

Python教程讨论了这个here

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

当您在记事本这样的编辑器中编辑文件时,您正在编写脚本文件,当您在Python解释器中运行该文件时,整个脚本将被解释并作为一个单元运行,即使它只有一行长。在屏幕上,您只看到写入标准输出(即“print()”)或标准错误(即错误回溯)的内容;您看不到在交互模式下对每个语句求值的结果。因此,在您的示例中,当从脚本文件运行时,如果不打印评估结果,您将看不到它。

Python教程讨论了这个here

相关问题 更多 >