所以我们说
start = 10
end = 30
现在我需要一个从start
到end
我在考虑这样的事情:
for i in [start..end]
print i
但这不太有用。有干净的方法吗?
答案 0 :(得分:7)
for i in range(start, end+1):
print i
将为您提供从10到包含 30的输出。
注意:我将+1
添加到end
值的原因是因为range()函数指定了半闭区间。这意味着第一个值是包含,但结束值是不是。
即,
range(5, 10)
会给你一个
列表 5, 6, 7, 8, 9
但不包括10。
您还可以指定range()以及其他一些内容的步长,请参阅documenation。
最后,如果您使用的是Python 2.x,您也可以使用xrange()代替range()
,但在Python 3.x中,您将只有range()
这就是为什么我在这里使用它。
如果您对range()
和xrange()
之间的差异感到好奇(虽然它与您的问题没有直接关系),以下两个SO问题是一个很好的起点:{{3} }和What is the difference between range and xrange functions in Python 2.X?
答案 1 :(得分:2)
for i in xrange(start, end + 1):
print i
如果你使用的是Python 3,那么在range
中使用xrange
(如@Levon建议的那样),而不是Python 2.x.
答案 2 :(得分:2)
for i in xrange(10, 31):
# something
看一下精美的手册,它会为你解释...注意结束点是“最多但不包括” - 它被称为半闭范围。
正如其他人在Python 3.x中提到的那样 - range()
是一个生成器,并且不像Python 2.x那样创建list
。但是,2to3工具会自动将xrange
转换为range
语句。
在2.x range
中生成了一个可以切片的物理列表等......但是在3.x中,如果你想要它实现2中的功能,你必须写list(range(1000))
。 X
答案 3 :(得分:1)
您正在寻找range()
range(start,end) #end not inclusive
range(end) # starts with 0,end not inclusive
range(start, end, step) #increments of step, default = 1
例如,
for i in range(100,150):
print i
注意: Py3k +只有range(),之前的版本有xrange()
和range()
,两者都相似,只有xrange()
是生成器,而{{{ 1}}创建一个可以迭代的数字列表。
答案 4 :(得分:1)
您可以迭代并打印列表的每个元素。请尝试以下方法:
for i in range(start,end+1):
print i
答案 5 :(得分:1)
您还可以打印从范围:
返回的结果列表来打印全部数字print(range(start, end+1))