我正在根据文档(https://docs.python.org/3/library/stdtypes.html#range)的公式研究python range函数,但是它不适用于某些范围,如果对我来说是肯定的步骤,但是对于否定步骤,不是。< / p>
python doc说:
对于否定的步骤,范围的内容仍由公式
r[i] = start + step*i
确定,但约束条件为:i >= 0 and r[i] > stop
所以,我正在尝试使用该公式来计算range (4, -2, -2)
range (4, -2, -2), r[i] = start + step*i ,i >= 0 and r[i] > stop
i = 4, --> r[4]= 4 + (-2)*(4) = -4,
(4 >= 0) (True) and (-4)>(-2) False = False
因此,请注意,第一步不起作用,因为条件为False
,因此该范围应为= 4,2,0
我在做什么不好?
答案 0 :(得分:0)
让我们看看为range (4, -2, -2)
范围函数的文档:range(start, stop[, step]) -> list of integers
因此,您有start = 4
,stop=-2
和step=-2
。
在公式r[i] = start + step*i
中, i
始终从0开始计数。
第一个元素r[0] = 4 + (-2) * 0 = 4
。
约束成立。 i >= 0
,因为i
为0,而r[i] == 4
大于stop
(-2
)。