1. 程式人生 > >python中的for語句

python中的for語句

使用內建 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
...012134234323445576689

迴圈使用 else 語句

在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區別,else 中的語句會在迴圈正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣。

例項

#!/usr/bin/python # -*- coding: UTF-8 -*- fornuminrange(10,20): # 迭代 10 到 20 之間的數字 foriinrange(2,num): # 根據因子迭代 ifnum%i == 0: # 確定第一個因子 j=num/i# 計算第二個因子 print'%d 等於 %d * %d' % (num,i,j) break# 跳出當前迴圈 else: # 迴圈的 else 部分 printnum, '是一個質數'

以上例項輸出結果:

10等於2*511是一個質數12等於2*613是一個質數14等於2*715等於3
*516等於2*817是一個質數18等於2*919是一個質數

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]

使用內建 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
...012134234323445576689
#!/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)

氣泡排序

#!/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

列印空心等邊三角形:

#!/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 -1or k == rows + i -1):print" * ",elif i == rows -1:if k %2==0:print" * ",else:print"   ",else:print"   ",print"\n"