2015-02-11 57 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] 

沒有拋出異常,因爲它是按照文檔描述的那樣行事。