我熟悉 和 之间的range()区别xrange()。我注意到一些奇怪的东西xrange():
>>> xrange(1,10,2)
xrange(1, 11, 2)
>>> xrange(1,10,4)
xrange(1, 13, 4)
从功能上讲,它是正确的:
>>> for item in xrange(1,10,4):
... print item
...
1
5
9
>>>
但是,如您所见,返回xrange对象中的停止值是最后一个合法值之后的下一个较高值。有什么理由吗?
range()它现在在 Python 3 中提供与 Python 2 中相同的功能,xrange其行为符合预期:
>>> range(1,10,4)
range(1, 10, 4)
>>> range(1,10,2)
range(1, 10, 2)
>>>