2015-02-11 56 views

回答

1

范围可以接受负一步,也

In [2]: list(range(0, -10, -1)) 
Out[2]: [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] 

且不说负数的正步进范围。

In [3]: list(range(-9, 1)) 
Out[3]: [-9, -8, -7, -6, -5, -4, -3, -2, -1, 0] 

至于为什么它不会对一个负参数版本抛出一个错误,我认为这只是禅

Special cases aren't special enough to break the rules.

1

默认情况下,range功能从0开始。此外,该步骤默认为正1。您仅为函数(停止点)提供了一个参数,并且该参数为-1。因此,它试图将增量从0到-1。

查看range()

If the start argument is omitted, it defaults to 0.

文档如果你愿意去负,你需要包括startstopstep值:

range(0, -10, -1) 
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9] 

没有抛出异常,因为它是按照文档描述的那样行事。