python中的for語句
阿新 • • 發佈:2019-02-10
使用內建 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"