如何將c風格的循環轉換爲python?將C風格的循環轉換爲python
for (int i = m; i >= lowest; i--)
,我想出了最好的是:
i = mid
for i in range(i, low,-1):
如何將c風格的循環轉換爲python?將C風格的循環轉換爲python
for (int i = m; i >= lowest; i--)
,我想出了最好的是:
i = mid
for i in range(i, low,-1):
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
這個問題不再存在。
m
從那裏循環開始。
l
其中循環停止,並且範圍中排除最後一個項目,從而l-1
和
-1
反向陣列。
for i in range(m, l-1, -1):
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
有三個參數,啓動,停止,每一步之間的增量。
在可能的情況下,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」對任何人都不好玩。
嘿!你回來了。 ;-) – 2014-12-05 10:36:55