Python语言中的函数range()未给出预期结果
作为python的初学者,我尝试在空闲终端中测试函数range()。 我在终端中写下了下面发布的代码,我希望看到这样的结果:Python语言中的函数range()未给出预期结果,python,Python,作为python的初学者,我尝试在空闲终端中测试函数range()。 我在终端中写下了下面发布的代码,我希望看到这样的结果: range(10)==>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 但不幸的是,我没有得到预期的结果 我尝试过的Python代码: range(10) print(range(10)) shell的结果是: >>> print(range(10)) 跨版本解决方案 蟒蛇2: 我不知道你的Python版本,但我的很好用。 请
range(10)==>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
但不幸的是,我没有得到预期的结果
我尝试过的Python代码:
range(10)
print(range(10))
shell的结果是:
>>>
print(range(10))
跨版本解决方案 蟒蛇2: 我不知道你的Python版本,但我的很好用。 请尝试指定
range(0,10)
。在python 3中,range()
返回一个生成器,这就是它显示对象而不是值的原因:
>>> print(range(10))
range(0, 10)
如果需要列表,则需要在打印前将其转换为列表:
>>> print(list(range(10)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
生成器一次只创建一个值以节省内存。您可以阅读它们,其中包括一个适合您的测试用例的示例。您尚未将
范围(10)
分配给第一行中的变量。第二行打印(范围(10))
应该可以工作。范围(11)
range(1,11)
?您使用的是python 3.x吗?如果您使用的是python3range
现在就是python2中的xrange
了。要获得一个数字列表,请使用list(range(…)
@Ashwini:我使用的是python 3.3.1Eh,我得出的结论与此相同。range(0,10)
相当于任何python版本的range(10)
(至少从v2.0开始,如果您使用的是2001年以前的python…),我不在这里,我也知道他描述了一个不应该发生的问题。。因此,任何可以在其中抛出以解决神秘错误的选项都值得注意:)@glglglgl很好的一点,list
本身只是一个类型防御,所以它在Python2中的工作应该和在Python3中一样好。@Torxed-不,list不仅仅是一个类型定义,它实际上是一个接受枚举的构造函数,在Python2和Python3之间,这种行为是一致的。@PaulMcGuire,我很清楚,一切都是一个对象。我不应该开始和你们中的任何人争论细节,因为我倾向于“放松”语言,除非我有几个小时的时间去钻研一个主题,或者我有时间去做,我的空闲时间是有限的,我刚才提到的基线是list()返回一个列表定义,而不是其他变量,由于列表是可编辑的,所以我假设一个非猴子会想出其他的东西,我只是给孩子指出了一个大致的方向。而且,答案标记为已解决,我不再关心细节:)
>>> print(range(10))
range(0, 10)
>>> print(list(range(10)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]