任何人都可以解釋x
如何取整數值。我們直接使用x
for循環「for x in a」 編譯器如何識別它,x
代表列表中的字符串?Python中的循環變量
>>> # Measure some strings:
... a = ['cat', 'window', 'defenestrate']
>>> for x in a:
... print x, len(x)
...
cat 3
window 6
defenestrate 12
任何人都可以解釋x
如何取整數值。我們直接使用x
for循環「for x in a」 編譯器如何識別它,x
代表列表中的字符串?Python中的循環變量
>>> # Measure some strings:
... a = ['cat', 'window', 'defenestrate']
>>> for x in a:
... print x, len(x)
...
cat 3
window 6
defenestrate 12
for
作品在不同比Python作品在語言,如C.相反數/下一個數值和檢查結束條件,你通常會在C:
for (i=0; i<=max; i++) do_something();
它迭代過在容器(其名稱的in
之後被引用)中的所有元素:
for item in iterable:
do_something(item)
及其精確行爲取決於CONT的類型(iterable
)使用;在列表或元組中,它將從第一個元素開始,然後一次一個元素地移動列表/元組,直到達到最終元素。每個元素將被一個名稱引用(本例中爲item
),以便它可以在循環體中進行操作。
在字典中,for
將遍歷字典的鍵(以未指定的順序),因此item
將包含字典的鍵。
在字符串中,它會逐個遍歷字符串的字母。等
X是如何採取整數值
它不是。它正在迭代你正在迭代的序列中包含的連續值,這就是字符串。
元素不必是特定類型的,它們也不甚至必須是相同的類型。
更技術一點,在由迭代提供一個迭代的for
循環迭代。
可迭代可以是一個列表,一個字符串,一個元組等,迭代器是用於迭代的對象。
使用for i in a:
,您請求迭代器爲a
,完全如您對iter(a)
所做的那樣。
這種情況
the_iterator = a.__iter__()
a
有__getitem__()
,直到IndexError
提高與次生長指標調用此。此迭代符,然後調用(在Python 3 .__next__()
)在每次循環運行.next()
直到迭代器被耗盡,並提出StopIteration
。
所以,換句話說:
for x in a: print x, len(x)
內部就像
a_iter = iter(a)
while True:
try: x = next(a)
except StopIteration: break
print x, len(x)
,但看起來更漂亮。
'len'函數內部檢查x – avasal
這個代碼給出了一個縮進錯誤 – none
問題是?你通過一個字符串數組循環,因此循環中的每個項都是一個字符串。 – Eric