我無法理解Python for循環。例如,這裏是一些代碼,我已經當我在學習做:Python for循環?
board = []
for i in range (0,5):
board.append(["O"] * 5)
不要擔心代碼做什麼,我只是不明白什麼是「我」變量的手段。
我無法理解Python for循環。例如,這裏是一些代碼,我已經當我在學習做:Python for循環?
board = []
for i in range (0,5):
board.append(["O"] * 5)
不要擔心代碼做什麼,我只是不明白什麼是「我」變量的手段。
簡而言之,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)
結果:
這是一個未使用的變量。 Python語法需要一個變量在這個位置,但是你不用做任何事情,因爲你只是想重複一個動作5次。
有些人喜歡命名一個未使用的變量這樣_
的約定:
for _ in range(5)
但是這個名字可以用gettext
干擾。
認爲它是替代。
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 )
哈哈:P解釋器實際上是相當混亂的,因爲一半的時間我寫完全正確的代碼,我得到的錯誤(我知道這是因爲我已經在IDLE窗口中運行代碼) – Wolverine1621
是的,這有點兒越野車!但是開始學習python並不算太壞。 :P。 – TerryA
這很不錯,雖然我因爲口譯員而有點麻煩.....而且它並不總是能夠解釋最好的東西。但是我的學習比我的書更好,至少現在是這樣。 – Wolverine1621
這是一個迭代器,您可以將其視爲一個存儲每個迭代結果的存儲桶;這會增加混淆的事實是它在你的腳本中沒有被使用,這是另一個腳本,它使用了更多的迭代器。
fruits = ['banana', 'apple', 'strawberry', 'coconut', 'cherry']
for yup in fruits:
print(yup)
正如您所看到的,您可以根據需要命名它,這是使該詞成爲迭代器的語法。
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
。正在使用它。只是爲了遍歷對象列表。
在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
在這裏,我執行相同的操作,我只是一個遞增的數值變量。
我發現當我試圖理解某些東西的時候,我會發現遍佈各處的'print'會有幫助。在這裏,我會在循環中添加'print i'。 (或者,如果你使用的是Python 3,則輸入'print(i)'。) – DSM
http://docs.python.org/2/tutorial/controlflow.html#for-statements –
不要忘記接受答案!這有助於其他人表明這個問題已經完全回答:)。 – TerryA