2014-12-05 21 views

回答

5
for i in range(m, low - 1, -1): 

記住range是獨家stop參數。

range(...) 
    range(stop) -> list of integers 
    range(start, stop[, step]) -> list of integers 

此代碼與C代碼之間的區別是,在Python 2,一個list被在存儲器構成由range因此對於非常巨大範圍,這可能是一個問題。用xrange代替range不會在內存中建立一個列表並使代碼幾乎相同。在Python 3這個問題不再存在。

+0

嘿!你回來了。 ;-) – 2014-12-05 10:36:55

1

m從那裏循環開始。

l其中循環停止,並且範圍中排除最後一個項目,從而l-1

-1反向陣列。

for i in range(m, l-1, -1): 
0
m = 20 
low = 10 

for i in range(m, low - 1, -1): 
    print i 

這會倒計時預期:

20 
19 
18 
17 
16 
15 
14 
13 
12 
11 
10 

range有三個參數,啓動,停止,每一步之間的增量。

0

在可能的情況下,Python的習慣用法是直接遍歷這些項目,而不是通過它們進行計數。因此,一個慣用的方式倒計時將for item in reversed(list): print item或採取扭轉片>>> someList[m:lowest-1:-1]

如果您遍歷項目,還需要一個計數器,Python有enumerate()而循環,從而產生計數索引號。 for index, value in enumerate(someList):

這並不總是可以做到這一點,有時候你正在計數,除了數字之外沒有檢查其他任何數據,range()沒問題 - 正如其他答案所暗示的那樣。但是當你有一個for (int i=...循環時,看看你是否可以改變它直接對數據進行操作。編寫「Python中的C」對任何人都不好玩。