Python學習 8 for迴圈

2021-08-10 21:48:13 字數 3460 閱讀 8812

1.for迴圈

當我們需要重複去執行乙個操作序列時,常常就需要用到for迴圈,迴圈的次數由判斷條件決定,當判斷條件返回false時,判斷終止,迴圈結束.以下是python中的for迴圈結構:

以上**就是乙個for迴圈,其中x是迭代變數,在迴圈過程中序列會將每乙個元素賦給x然後列印出來,for迴圈執行過程中的**段與if語句中執行的**段一樣,都是需要有乙個tab縮排符,以表示此語句屬於for迴圈**段,當迴圈迭代把序列中的每乙個元素都遍歷完成後,迴圈就結束了,以下是**執行結果:

2.range函式

當我們使用for迴圈的時候,常常需要做的是控制for迴圈的次數,比如我們做從1到100的相加運算,需要做100次的加操作,相應的需要迴圈100次,難道我們要建立乙個值為1到100的序列,然後把他們相加嗎?這樣做不僅繁瑣,而且容易出錯.python為我們提供了乙個生成序列的函式,就是range()函式,比如range(100),python會為我們建立乙個長度為100,值從0~99的乙個序列,如果我們想讓1~100的數相加求和,只需要range(101),然後for迴圈,讓0~100的數相加求和即可.**如下:

a=range(10)

print(a[0])

print(a[1])

print(a[2])

print(a[3])

print(a[4])

print(a[5])

print(a[6])

print(a[7])

print(a[8])

print(a[9])

執行結果如下:

可以看到我們通過range(10),建立了乙個長度為10,值依次為0~9序列,在程式設計中,如果我們想控制for迴圈的迴圈次數,用這樣的方法無疑事半功倍.以下是乙個用range函式控制迴圈次數的例子:

for x in range(10):

print(x,"hello world")

列印結果如下:

3.range函式的拓展功能

range()函式實際上可以使用三個引數來建立序列,即range(i,j,n),在python3中如果這三個引數都寫,則會建立乙個長度為j-i,步長為n的序列,i和j分別指定了序列的初始值和終止值,這個序列的下標是從0~j-i-1,元素為i~j-1,一共j-i個元素,n為步長,在這裡我們又提到了步長這個概念,這個步長的含義其實和之前的步長是一致的,即每間隔n-1個序列元素取乙個元素,來作為新序列的元素.**如下:

a=range(2,10,2) 

for x in range(2,10,2):

print(x)

如上**,a=range(2,10,2),我們開始建立了乙個長度為8,值為2~9的乙個序列,即建立出來的臨時序列值為:2,3,4,5,6,7,8,9.由於步長為2,每隔乙個元素值取乙個,獲取到2,4,6,8,所以序列的最終元素值為2,4,6,8.長度為4.最終為a[0]=2,a[1]=4,a[2]=6,a[3]=8,程式結果最後如下:

需要的注意的是,range()函式只能建立元素為整數的序列.

4.通過下標迭代列表

當我們需要迭代乙個序列的時候可以像下面的**這樣做:

s=["h",'e','l','l','o']

for x in s:

print(x)

即把序列中的每乙個元素賦值給乙個臨時的迭代變數,然後對迭代變數進行操作.但是這樣做不夠靈活,可能有時候我們只需要迭代其中幾個元素,比如我們想迭代下標為偶數的元素,這種情況下,我們可以通過下標來迭代序列.

無論是通過迭代變數,還是下標來迭代序列,我們需要知道的是,迭代的次數都是一樣的,那就是序列的長度有多長就迭代多少次,序列長度為len(s),range(len(s))建立的序列就是序列s的下標序列,**如下:

s=["h",'e','l','l','o']        

for x in range(len(s)):

if x%2==0:

print(s[x])

如程式所示,range(len(s))就是s的下標序列[0,1,2,3,4],s[x]對應的就是迭代得到的每個元素值,通過條件判斷表示式x%2==0,就能獲取到下標為偶數的下標值,列印結果如下:

5.for迴圈迭代字典

之前我們提到字典是不屬於序列的,因為字典是無序的鍵值對,其實我們可以把字典轉化為序列後再迭代遍歷,這時候就用到了字典的乙個函式,items(),**如下:

d1=

print(d1.items())

結果如下圖:

如上**,通過字典的items()方法,建立了乙個列表序列,其中每個元素又是乙個元組序列,之前我們學過用元組為變數賦值,如下**:

k,v= ('age', 12)

print(k)

print(v)

結果如下圖:

如上**就是將元組('age',12)的值依次賦值給k,v,在遍歷以元組作為元素的列表的時候,也用到了這個小技巧,如下**所示:

d1=

for k,v in d1.items():

print(k,v)

執行結果如下:

如上**所示,對字典的items()方法建立的列表元素進行迭代,取出每乙個字典元素後,用之前的小技巧,將其賦值給臨時迭代變數k,v後,並列印.

最近課設很多,研究生這學期也過了一大半,感覺對模式識別,影象處理這方面還沒入門,要學的東西還很多,繼續努力吧,北工大菜鳥.

Python筆記(8)for迴圈

user bin env python coding utf 8 author berlin 1 for的小於10迴圈 for i in range 10 第一次從0開始 print 迴圈 i 2 for的小於10的間隔迴圈,for i in range 0,10,2 0代表從0開始,10代表小於1...

Python教程系列(8) for迴圈

python教程系列for迴圈案例如下 python中for迴圈語句學習 建立for迴圈語句 建立list列表資訊資料 list liuhao liming xiena 迴圈list列表資料 for data in list print data 迴圈list列表break語句 跳出d迴圈 prin...

Scala學習筆記8 for表示式

foreach為容器提供了內部迭代器 1 to 10 foreach i println i for表示式接收的引數包括乙個或多個生成器 generator 0或多個定義 definition 還有0或多個過濾器 filter 這些東西彼此以分號分隔。yield關鍵字是可選的,如果它存在的話,就表示...