Python for循環語句
for循環在Python中有遍曆所有序列的項目,如列表或一個字符串。
語法:
for循環語法如下:
for iterating_var in sequence: statements(s)
如果一個序列包含一個表達式列表,計算第一個。然後,在序列中的第一項被分配給迭代變量iterating_var。接著,語句塊被執行。列表中的每個項目分配給iterating_var,並且statement塊被執行,直到整個序列完成(到尾部)。
流程圖:
例子:
#!/usr/bin/python for letter in 'Python': # First Example print 'Current Letter :', letter fruits = ['banana', 'apple', 'mango'] for fruit in fruits: # Second Example print 'Current fruit :', fruit print "Good bye!"
當執行上麵的代碼,產生以下結果:
Current Letter : P Current Letter : y Current Letter : t Current Letter : h Current Letter : o Current Letter : n Current fruit : banana Current fruit : apple Current fruit : mango Good bye!
通過遍曆序列索引:
通過每個項目進行迭代的一種替代方法是:通過索引偏移量序列本身。下麵是一個簡單的例子:
#!/usr/bin/python fruits = ['banana', 'apple', 'mango'] for index in range(len(fruits)): print 'Current fruit :', fruits[index] print "Good bye!"
當執行上麵的代碼,產生以下結果:
Current fruit : banana Current fruit : apple Current fruit : mango Good bye!
在這裡,我們采用內置函數len(),它計算元組元素的總數量以及range()內置函數給我們的實際遍曆順序。
循環使用else語句
Python支持與循環語句相關聯的else語句。
-
如果else語句與for循環使用,執行else語句時,循環已經迭代完成列表。
-
如果在else語句使用while循環,當條件為假時,else語句被執行。
下麵的例子演示了一個else語句,語句搜索素數從10到20的組合。
#!/usr/bin/python for num in range(10,20): #to iterate between 10 to 20 for i in range(2,num): #to iterate on the factors of the number if num%i == 0: #to determine the first factor j=num/i #to calculate the second factor print '%d equals %d * %d' % (num,i,j) break #to move to the next number, the #first FOR else: # else part of the loop print num, 'is a prime number'
當執行上麵的代碼,產生以下結果:
10 equals 2 * 5 11 is a prime number 12 equals 2 * 6 13 is a prime number 14 equals 2 * 7 15 equals 3 * 5 16 equals 2 * 8 17 is a prime number 18 equals 2 * 9 19 is a prime number