來自:http://www.runoob.com/python/python-for-loop.html
Python for 循環語句
Python for循環可以遍歷任何序列的項目,如一個列表或者一個字符串。
語法:
for循環的語法格式如下:
for iterating_var in sequence: statements(s)
流程圖:

實例:
實例
#!/usr/bin/python # -*- coding: UTF-8 -*- for letter in 'Python': # 第一個實例 print '當前字母 :', letter fruits = ['banana', 'apple', 'mango'] for fruit in fruits: # 第二個實例 print '當前水果 :', fruit print "Good bye!"
嘗試一下 »
以上實例輸出結果:
當前字母 : P 當前字母 : y 當前字母 : t 當前字母 : h 當前字母 : o 當前字母 : n 當前水果 : banana 當前水果 : apple 當前水果 : mango Good bye!
通過序列索引迭代
另外一種執行循環的遍歷方式是通過索引,如下實例:
實例
#!/usr/bin/python # -*- coding: UTF-8 -*- fruits = ['banana', 'apple', 'mango'] for index in range(len(fruits)): print '當前水果 :', fruits[index] print "Good bye!"
以上實例輸出結果:
當前水果 : banana 當前水果 : apple 當前水果 : mango Good bye!
以上實例我們使用了內置函數 len() 和 range(),函數 len() 返回列表的長度,即元素的個數。 range返回一個序列的數。
循環使用 else 語句
在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區別,else 中的語句會在循環正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣。
實例
#!/usr/bin/python # -*- coding: UTF-8 -*- for num in range(10,20): # 迭代 10 到 20 之間的數字 for i in range(2,num): # 根據因子迭代 if num%i == 0: # 確定第一個因子 j=num/i # 計算第二個因子 print '%d 等於 %d * %d' % (num,i,j) break # 跳出當前循環 else: # 循環的 else 部分 print num, '是一個質數'
嘗試一下 »
以上實例輸出結果:
10 等於 2 * 5 11 是一個質數 12 等於 2 * 6 13 是一個質數 14 等於 2 * 7 15 等於 3 * 5 16 等於 2 * 8 17 是一個質數 18 等於 2 * 9 19 是一個質數
更多實例:python 打印菱形、三角形、矩形
緣分天注定
738***641@qq.com
參考地址
使用內置 enumerate 函數進行遍歷:
for index, item in enumerate(sequence): process(index, item)
實例
>>> sequence = [12, 34, 34, 23, 45, 76, 89] >>> for i, j in enumerate(sequence): ... print i,j ... 0 12 1 34 2 34 3 23 4 45 5 76 6 89
緣分天注定
738***641@qq.com
參考地址
shenwenwin
she***nwin@163.com
for 使用案例
使用list.append()模塊對質數進行輸出。
#!/usr/bin/python # -*- coding: UTF-8 -*- # 輸出 2 到 100 簡的質數 prime = [] for num in range(2,100): # 迭代 2 到 100 之間的數字 for i in range(2,num): # 根據因子迭代 if num%i == 0: # 確定第一個因子 break # 跳出當前循環 else: # 循環的 else 部分 prime.append(num) print prime
輸出結果:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
shenwenwin
she***nwin@163.com
kimiYang
943***010@qq.com
打印空心等邊三角形:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 打印空心等邊三角形 rows = int(raw_input('輸入行數:')) for i in range(0, rows): for k in range(0, 2 * rows - 1): if (i != rows - 1) and (k == rows - i - 1 or k == rows + i - 1): print " * ", elif i == rows - 1: if k % 2 == 0: print " * ", else: print " ", else: print " ", print "\n"
kimiYang
943***010@qq.com
feng
124***7699@qq.com
打印1-9三角形陣列:
#!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1,11): for k in range(1,i): print k, k +=1 i +=1 print "\n"
輸出結果:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9
feng
124***7699@qq.com
ljm
131***1561@qq.com
#!/usr/bin/python # -*- coding: UTF-8 -*- '''在python中,for循環后的in跟隨一個序列的話,循環每次使用的序列元素,而不是序列 的下標''' s = 'qazxswedcvfr' for i in range(0,len(s),2): print s[i] '''enumerate() : 在每次循環中,可以同時得到下標和元素 際上,enumerate(),在每次循環中返回的是包含每個元素的定值表,兩個元素分別賦值 index,char''' for (index,char) in enumerate(s): print "index=%s ,char=%s" % (index,char)
ljm
131***1561@qq.com
為夢而來
183***85363@163.com
冒泡排序,來至於高學軍:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 冒泡排序# 定義列表 list arays = [1,8,2,6,3,9,4] for i in range(len(arays)): for j in range(i+1): if arays[i] < arays[j]: # 實現連個變量的互換 arays[i],arays[j] = arays[j],arays[i] print arays
為夢而來
183***85363@163.com
forMyPeople
lwy***68957@126.com
更多實例:python 打印菱形、三角形、矩形的代碼感覺,寫的有點復雜了,如果讓你畫圓或者其他圖形呢?
其實運用數學公式,就可以了。比如菱形 |x - w/2| + |y - w/2| = w/2 輕松搞定。
#!/usr/bin/python # -*- coding: UTF-8 -*- width = int(raw_input('輸入對角線長度: ')) for row in range(width + 1): for col in range(width + 1): if ((abs(row - width/2) + abs(col - width/2)) == width/2): print "*", else: print " ", print " "