所以我一直試圖讓我的腦袋裏面的python循環,但我不明白他們是如何工作的。我正在嘗試創建一個for循環,它將遍歷數字列表並將它們全部添加在一起,但我真的在語法的工作方式上苦苦掙扎。無法理解的循環Python
從我瞭解的語法是:
for w in words:
print w, len(w)
有人能解釋一下這迭代變量作品(W),也許用數字列表的例子嗎?
我試過這個,但我認爲我有錯。
所以我一直試圖讓我的腦袋裏面的python循環,但我不明白他們是如何工作的。我正在嘗試創建一個for循環,它將遍歷數字列表並將它們全部添加在一起,但我真的在語法的工作方式上苦苦掙扎。無法理解的循環Python
從我瞭解的語法是:
for w in words:
print w, len(w)
有人能解釋一下這迭代變量作品(W),也許用數字列表的例子嗎?
我試過這個,但我認爲我有錯。
For
環路參加一個事情每個項目,分配一個值給一個變量像w
或number
,做一個手術,然後移動到下一個項目,直到他們用完。
讓我們的例子第一個工作日...
numberstring = raw_input("> ") # expect a string like "1 2.0 4 100"
addition = 0
numberlist = numberstring.split(" ") # convert the chars into a list of "words"
for number in numberlist:
addition = addition + float(number)
print addition
不coverting使用.split()
列表,你的循環將通過串中的每個字母移動,將其解釋爲一個字母而不是數字。並且,如果不將這些單詞轉換爲數字(使用float()
),它甚至可以將字符串加回(除非在這種情況下,初始化爲零)。
列表混淆的一個來源:變量的名稱並不重要。如果你說for letter in myvar:
它不強制程序選擇字母。它只需要下一個項目並將該值分配給變量letter
。在Python中,這個項目可以是單詞,數字等的列表,或者如果給定一個字符串,它將以字符作爲項目。
另一種方式來想象它是你有一個購物籃裝滿物品,和收銀員通過他們一次一個循環:
for eachitem in mybasket:
# add item to total
# go to next item.
如果你把他們一袋蘋果,問他們通過它循環,他們會拿出每個蘋果,但如果你給他們一個籃子,他們會把袋子作爲一個項目...
你有什麼更像是一個foreach
循環。
也許是這樣的:
input = raw_input("> ") #separate with spaces
sum = 0
numbers = [int(n) for n in input.split()]
for number in numbers:
sum = sum + number
print sum
有兩種類型的for循環。
你是用什麼大概是:
sum = 0
for i in range(0,10):
sum += 1
#prints 9
你質疑的語法設置符號。它表示「對於每個成員詞彙w」,打印w和w的長度。在python 2.7及更低版本中,print
可以用作一個聲明,其中包含多個要打印的內容,例如,print w, len(w)
可打印單詞w及其長度。這不會像python 3或更高版本中所述的那樣工作。
只有一種for循環。 '對於範圍(0,10)'中的我循環遍歷可迭代的'範圍(0,10)'。 – abarnert
For循環工作的對象是iterables
(對象是能夠一次返回一個物體)。字符串是可迭代
>>> for c in "this is iterable":
... print c + " ",
...
t h i s i s i t e r a b l e
然而一些則不是。
>>> for x in 3:
... print "this is not"
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
遍歷一系列號碼,蟒蛇給你一個很好發電機稱爲功能......你猜對了,這range
在Python 2.x中返回一個列表
>>> for x in range(3):
... print x
...
0
1
2
那麼,一個小的控制檯會話應該清除它。簡而言之,Python會遍歷iterable
對象。現在這是什麼意思。這意味着像字符串,如列表或數組。
>>> numbers = [1, 2, 3, 4, 5]
>>> for n in numbers: print n
1
2
3
4
5
基本上,它會循環任何可以循環的東西。下面是另一個例子:
>>> my_happy_string = "cheese"
>>> for c in my_happy_string: print c
c
h
e
e
s
e
這裏是一個單詞列表的例子:
>>> list_of_words = ["hello", "cat", "world", "mouse"]
>>> for word in list_of_words: print word
hello
cat
world
mouse
基本上,蟒蛇的需求對象,它可以遍歷做一個for循環,所以如果你想要一個for循環將開始在0
和10
結束了,你會做這樣的事情:
>>> for i in range(0, 10): print i
0
1
2
3
4
5
6
7
8
9
讓我們來看看什麼range
FUNC回報:
>>> range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
基本上,它只是返回一個列表。所以,簡單來說,你需要一個列表。從技術上講,字符串是粘在一起的字符列表。
希望有所幫助。
其他語言稱之爲'foreach'循環,如果有幫助的話。 – roippi
在你的第二個例子中,'numbers'將是一個字符串。如果你遍歷一個字符串,每個項目(在你的例子中''編號')將是該字符串中的單個字符。看起來你想要類似的東西遍歷數字列表 - 看看['str.split()'](http://docs.python.org/2/library/stdtypes.html#str.split )的方式來分割字符串(例如空白)。然後你可以迭代它給你的列表,明確地將每個數字轉換爲一個「int」。 – thegrinner
你的for循環沒問題,這是你的raw_inout不能按照你的想法工作。嘗試用'numbers =(1,4,5,8)'替換該行,然後您會看到您期望的內容。 – Kevin