Я знаком с разницей между 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, что и xrange
в Python 2 ведет себя как ожидалось:
>>> range(1,10,4)
range(1, 10, 4)
>>> range(1,10,2)
range(1, 10, 2)
>>>