Python入門 for 遍歷迴圈

2022-08-09 23:48:21 字數 4746 閱讀 9540

for 為遍歷迴圈,可以遍歷任何序列,如 list,tuple,迭代器等。

for 的語句格式如下:

for  《變數》   in   《迴圈序列》:

【迴圈體】

釋:通過 for 迴圈依次將 《迴圈序列》 中的資料取出賦值給 《變數》,再通過【迴圈體】進行處理。

示例1:for 迴圈訪問列表

# for 迴圈訪問列表

list = ['woodman', 'alan', 'bobo']

for name in list:

print(name)

輸出結果:

woodman

alan

bobo

注意: name 這個變數是在 for 迴圈中定義的,意思是,依次取出 list 中的每乙個元素,並把元素賦值給 name,然後執行for迴圈體。

示例2: for 迴圈訪問字典

dict = 

for key, value in dict.items():

print(key, value)

輸出結果:

alan 89

woodman 98

bobo 56

示例3: for 迴圈訪問字串

# for 迴圈訪問字串,可以依次讀取每個字元

for char in 'woodman木頭人':

print(char)

輸出結果:wo

......

頭人

注意:中文字元佔2~3個位元組(由編碼決定,utf-8佔3位元組),每個中文字元是乙個值

for ... else ... 格式:

for  《變數》   in   《迴圈序列》:

【迴圈體】

else:

【else的語句塊】

釋:for 遍歷序列,無 break 結束當前迴圈,迴圈結束後執行 else 語句塊

示例1:

list = ['woodman', 'alan', 'bobo']

for name in list:

print(name)

else:

print('迴圈完整結束後執行')

輸出結果:

woodman

alan

bobo

迴圈完整結束後執行

示例2:

list = ['woodman', 'alan', 'bobo']

for name in list:

print(name)

if name == 'alan':

break # break 結束迴圈,for 下的 else 也不會執行

else:

print('迴圈完整結束後執行')

輸出結果:

woodman

alan

示例3:

list = ['woodman', 'alan', 'bobo']

for name in list:

if name == 'alan':

continue # continue 跳過本次迴圈,進入下一次迴圈

print(name) # 如果被 continue 本條語句不會執行

else:

print('迴圈完整結束後執行')

輸出結果:

woodman

bobo

迴圈完整結束後執行

注意:continue 只是跳過本次迴圈,迴圈結束後 else 語句塊最後被執行

迴圈巢狀為迴圈中巢狀另外一層迴圈。

for 《外層迴圈變數》 in 《外層迴圈序列》:

for 《內層迴圈變數》 in 《內層迴圈序列》:

【內層迴圈體】

【外層迴圈體】

這個只是乙個for 與 for 的迴圈巢狀,你可以使用 for 與 while 巢狀。

迴圈巢狀經典示例1:倒三角的九九乘法表

# 九九乘法表 倒三角,你可以試試輸出正三角

for i in range(1, 10): # range()請看本章第五部分

for j in range(i, 10):

print('%d * %d = %d' % (i, j, i * j), end='\t')

print('') # 控制換行

迴圈巢狀經典示例2:氣泡排序

# 氣泡排序

list = [9, 2, 7, 4, 5, 6, 3, 8, 1, 10]

length = len(list)

for i in range(length):

for j in range(length - i):

if list[length - j - 1] < list[length - j - 2]:

list[length - j - 1], list[length - j - 2] = list[length - j - 2], list[length - j - 1]

print(list)

1、迭代器簡介

python 的 for 迴圈不僅可以用在 list 或 tuple 上,還可以作用在其他任何可迭代物件上。

迭代操作就是對於乙個集合操作,無論該集合是有序還是無序,我們用 for 迴圈總是能依次取出集合中的每乙個元素。

釋義: 集合是指包含一組元素的資料結構,它包括:

有序集合:list,tuple,str和unicode;

無序集合:set

無序集合並且具有 key-value 對:dict(python3.6後字典為有序)

迭代器有兩個基本的方法:iter() 和 next()

iter() 建立乙個迭代器

next() 訪問迭代元素,訪問後指標向下移一行

示例:

>>>list=[0,1,2,3,4]

>>> it = iter(list) # 建立迭代物件

>>> print (next(it)) # 訪問當前指標元素,結束後指標向下移一步

0>>> print (next(it)) #

1>>>

2、for迴圈訪問迭代器

示例:

list = ['woodman', 'alan', 'bobo']

it = iter(list) # 建立迭代器物件

for name in it: # 迴圈訪問迭代器

print(name)

注意:迭代器訪問資料比通過索引迴圈訪問速度更快,資料量大時一般會使用迭代器

range ( ) 為 python 的自有類,range() 帶有內建的迭代方法__iter__() 和 __next()__ ,它是乙個可迭代物件,我們可以通過 for 訪問 range() 建立的迭代器。

range 類初始化引數說明:

range(stop) 從0開始到stop結束(不包含 stop)返回乙個產生整數序列的迭代物件

range(start, stop[, step]) 從 start 開始到 stop 結束(不包含 stop)返回乙個整數序列的迭代物件, step 為他的步長

示例1:

for i in range(5):

print(i, end='-')

輸出:0-1-2-3-4-
示例2 :

for i in range(1,5):

print(i, end='-')

輸出:1-2-3-4-
示例3:

for i in range(1,5,2):

print(i, end='-')

輸出:1-3-
示例4:

for i in range(-1,-5,-2):

print(i)

輸出結果

-1-3

注意:start, stop, step 三個引數可以為負數

示例5:

# 結合range()和len()函式以遍歷乙個序列的索引,如下所示.

list = ['woodman', 'alan', 'bobo']

for i in range(len(list)):

print(i,list[i])

輸出結果:

0 woodman

1 alan

2 bobo

注意:for 迴圈可作用的迭代物件遠不止 list,tuple,str,unicode,dict 等,任何可迭代物件都可以作用於 for 迴圈,而內部如何迭代我們通常並不用關心。

通常可迭代物件一般具備 iter() 和 next() 方法或者 __iter__() 和 __next()__ 方法。

有相同愛好的可以進來一起討論哦:企鵝群號:1046795523

Python迴圈遍歷檔案

for遍歷檔案 open aaa.py r readline 遍歷aaa.py的第一行,每個字元作為一行 open aaa.py r readlines 遍歷整個aaa.py文件,源文件一行作為遍歷的一行 open aaa.py r read 遍歷整個aaa.py文件,每個字元作為一行 r 表示已唯...

Python 迴圈遍歷檔案

python中開啟檔案需要使用內建函式open open name mode buffering 啟動mode和buffering 是可選的,預設情況下mode是r r 以讀方式開啟 w 以寫方式開啟 檔案不存在會建立,存在的話,會清空檔案,很危險 a 以追加的方式開啟 r 以讀寫模式開啟 w 以讀...

python的遍歷迴圈與無限迴圈

迴圈結構 遍歷迴圈 for 迴圈變數 in 遍歷結構 語句塊 由保留字for和in組成,完整遍歷所有元素後結束 每次迴圈,所獲得元素放入迴圈變數,並執行一次語句塊 計數迴圈 n次 for i in range n 語句塊 0 n 1 for i in range m,n,k i由m開始,到n 1,並...