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關鍵字是可選的,如果它存在的話,就表示...