2013-04-02 312 views
1

我無法理解Python for循環。例如,這裏是一些代碼,我已經當我在學習做:Python for循環?

board = [] 
for i in range (0,5): 
    board.append(["O"] * 5) 

不要擔心代碼做什麼,我只是不明白什麼是「我」變量的手段。

+6

我發現當我試圖理解某些東西的時候,我會發現遍佈各處的'print'會有幫助。在這裏,我會在循環中添加'print i'。 (或者,如果你使用的是Python 3,則輸入'print(i)'。) – DSM

+1

http://docs.python.org/2/tutorial/controlflow.html#for-statements –

+0

不要忘記接受答案!這有助於其他人表明這個問題已經完全回答:)。 – TerryA

回答

1

簡而言之,i引用列表中的當前元素。

你的列表被定義爲:0,1,2,3,4和5。因此i將遍歷該列表並分配本身到下一個項目,i爲0時,下一個迭代i將是1,在下一個迭代i將2等

從python.org 直接:

Python中的for語句和你可以在C或Pascal中的略有不同。 Python的for語句並不總是迭代數字的算術級數(比如在Pascal中),或者讓用戶能夠定義迭代步驟和停止條件(如C),Python的for語句迭代任何序列的項目(列表或一個字符串),按順序出現在序列中。例如(沒有雙關語意)

words = ['cat', 'window', 'defenestrate'] 
for w in words: 
print w, len(w) 

結果:

  • 貓3
  • 窗口6
  • defenestrate 12

http://docs.python.org/2/tutorial/controlflow.html

3

這是一個未使用的變量。 Python語法需要一個變量在這個位置,但是你不用做任何事情,因爲你只是想重複一個動作5次。

有些人喜歡命名一個未使用的變量這樣_的約定:

for _ in range(5) 

但是這個名字可以用gettext干擾。

4

認爲它是替代。

range(0,5)[0,1,2,3,4]。 for循環遍歷列表中的每個元素,命名元素i

for i in range(0,5): 
    # Starts with 0 
    print i # prints 0 
    # now goes back, goes through next element in list: 1. 

打印0,1,2,3,4。

在你的例子中,我是一個佔位符。它只是用來循環x次的次數(在這種情況下,5作爲範圍的長度(0,5)是5)

另外,在Codecademy學習python很有趣(我認識到任務:p )

+0

哈哈:P解釋器實際上是相當混亂的,因爲一半的時間我寫完全正確的代碼,我得到的錯誤(我知道這是因爲我已經在IDLE窗口中運行代碼) – Wolverine1621

+0

是的,這有點兒越野車!但是開始學習python並不算太壞。 :P。 – TerryA

+0

這很不錯,雖然我因爲口譯員而有點麻煩.....而且它並不總是能夠解釋最好的東西。但是我的學習比我的書更好,至少現在是這樣。 – Wolverine1621

4

這是一個迭代器,您可以將其視爲一個存儲每個迭代結果的存儲桶;這會增加混淆的事實是它在你的腳本中沒有被使用,這是另一個腳本,它使用了更多的迭代器。

fruits = ['banana', 'apple', 'strawberry', 'coconut', 'cherry'] 
for yup in fruits: 
    print(yup) 

正如您所看到的,您可以根據需要命名它,這是使該詞成爲迭代器的語法。

1

for循環遍歷給定的對象列表,它是從range(0,5)獲得的[0, 1, 2, 3, 4],並且在每次迭代中,都需要一個變量來獲取迭代值。這裏使用i。您可以用任何變量替換它以獲取值。

for n in range(0, 5): 
    print n #prints 0, then 1, then 2, then 3,then 4 in each iteration 

又如:

for n in ('a', 'b', 'c'): 
    print n #prints a, then b, then c in each iteration 

但你給的代碼,不使用變量i。正在使用它。只是爲了遍歷對象列表。

1

在C/Java中的for循環wiil是:

for(int i=0;i<=10;i++) 
{ 
    //for-loop-body 
} 

在這裏爲每一個迭代i將遞增+1值,直到我達到10,之後,它出來的循環。 在同樣的方式,在Python for循環的樣子:

for i in range(0,10): 
    //for-loop-body 

在這裏,我執行相同的操作,我只是一個遞增的數值變量。