Python 3.2 空闲 : range function - print or list?

标签 python list printing range

我知道这是错误的做法,但我使用的是 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))

这个在 IDLE 上可以正常工作,但在记事本上不能正常工作以进行长时间编码。所以最后我尝试了:

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

它显示的内容与我的意图类似……我做对了吗?只有这样才能写吗?

最佳答案

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

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

Python 教程对此进行了一些讨论 here .

关于Python 3.2 空闲 : range function - print or list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398260/

相关文章:

python - 两个单词列表的概率分布

python - 使用 print 删除 python 中的当前行

reporting-services - SSRS : Export to PDF - Top Margin is too big

python - Django:即使不在 settings.py 中,APPEND_SLASH 是否设置为 True?

python - Pandas 和 unicode

python - 列表列表的总和

python - 从列表中删除元素的最佳方法

python 3 : Using OOP to change Class to Integer on Conditional Statement

python - 简化 shell 脚本中 python 测试的执行

java - 一次打印一个条目的链表节点 (Java)