Python for迴圈語句
阿新 • • 發佈:2020-09-16
for迴圈
1.for迴圈可以遍歷任意序列,例如:一個字串,一個列表
- 遍歷,就是檢視序列中的每個元素(for迴圈、遍歷、迭代,是自動播放所有序列當中的元素)
- 可迭代的物件可以使用for迴圈進行遍歷,例如:字串、列表、字典、元組和集合
- for迴圈裡面有一個隱藏的機制,就是自動執行index+1,直到遍歷完整個序列
2.列表的迭代
#for迴圈中,i為變數,用來接收序列中的元素 list=['藍天','白雲','大地'] for i in list: print(i) 輸出結果: 藍天 白雲 大地
3.使用列表的切片,對列表中的字串進行遍歷
#先使用切片將列表中的第一個元素取出,然後再對其進行遍歷取值list=['python','good','very'] for i in list[0]: print(i) 輸出結果: p y t h o n
4.使用for迴圈遍歷字典
- for迴圈遍歷字典,預設是遍歷字典的所有key值
- 如果想要取字典的value值,需要先取出所有的value值後,進行遍歷取值,或者遍歷key,列印的時候列印value值
- 也可以使用for迴圈取字典的鍵值對
dict={"name":"小花","age":18,"性別":"女"} #預設遍歷字典中的key值 for i in dict: print(i) 輸出結果: name age 性別#直接遍歷字典中的key值,打印出對應的value值 for j in dict: print(dict[j]) 輸出結果: 小花 18 女 #直接遍歷字典中的value值 for m in dict.values(): print(m) 輸出結果: 小花 18 女 #取字典中的鍵值對 for h in dict.items(): print(h) for key,value in dict.items(): print('{} 的值為 {}'.format(key,value)) 輸出結果: ('name', '小花') ('age', 18) ('性別', '女') name 的值為 小花 age 的值為 18 性別 的值為 女
5.for迴圈的巢狀:主要用來自動化測試中的用例獲取
(九九乘法表、氣泡排序的實現)
range()函式 用在你想重複執行多少次計算的時候,沒有現存的列表可以迴圈,就可以使用range(),返回的是一個可迭代物件
range(1,10) 表示從1開始到10結束,但不包括10. 輸出結果為:0,1,2,3,4,5,6,7,8,9
range(1,10,2) 表示從1開始到10結束,但不包括10,步長為2 輸出結果為:1,3,5,7,9
#如果不傳起始值,預設是從0開始,如果設定起始值,則就從設定的起始值開始 for i in range(10): print(i,end=' ') #輸出結果新增位置引數,返回結果之間用空格連線 輸出結果: 0 1 2 3 4 5 6 7 8 9
6.for迴圈巢狀例項
總結:for迴圈的巢狀,外層取一個值,內層取全部值,然後再返回外層繼續變數,直到遍歷完所有值。(外層走一個,內層走一圈)
list=[1,2,3,4,5] list2=["A","B","C","D","E"] for i in list: print(i,end=' ') for j in list2: print(j,end=' ') 輸出結果: 1 A B C D E 2 A B C D E 3 A B C D E 4 A B C D E 5 A B C D E
使用for迴圈實現九九乘法表
使用for列印九九乘法表 提示: 輸出九九乘法表,格式如下:(每項資料之間空一個Tab鍵,可以使用"\t") 1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81 ''' ''' for迴圈的巢狀使用 外層跑一個裡層跑一圈 python range() 函式可建立一個整數列表,一般用在 for 迴圈中 使用方法:range(start, stop,step) 引數說明: start:計數從start開始,預設為從0開始,eg:range(5)--->等價於range(0,5) stop:計數到stop計數,但是不包含stop。eg:range(0,5)-->[0,1,2,3,4] step:步長,預設為1,eg:range(5)--->等價於range(0,5,1) 生成一個1到9的整數列表 range(1,10) 當i=1時,j=1 當i=2時,j=1,2 當i=3時,j=1,2,3 當i=4時,j=1,2,3,4 ....依次類推 當i=n時,j=n ,所以j的取值範圍由i的取值決定。 所以j的取值範圍為range(1,i+1) 依次進行遍歷,生成如下的乘法口訣表 ''' for i in range(1,10): for j in range(1,i+1): print("{}*{}={}".format(j,i,i*j),end='\t') #此處的print()輸出每執行完一輪後,列印計算結果到控制檯 print() 輸出結果: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
重點:測試用例的獲取
cases = [ ['case_id', 'case_title', 'url', 'data', 'excepted'], [1, '用例1', 'www.baudi.com', '001', 'ok'], [4, '用例4', 'www.baudi.com', '002', 'ok'], [2, '用例2', 'www.baudi.com', '002', 'ok'], [3, '用例3', 'www.baudi.com', '002', 'ok'], [5, '用例5', 'www.baudi.com', '002', 'ok'], ] '''使用i進行遍歷cases裡面的值,方法:for i in cases 使用i進行確定迴圈多少次,方法:for i in range(len(cases))''' #print(cases[0][4],cases[1][4]) ''' 以此得到的結論為: 這是讀取到對應的第一行的資料 這是讀取到對應第二行的資料 cases[0][0]:cases[1][0] cases[0][0]:cases[2][0] cases[0][1]:cases[1][1] cases[0][1]:cases[2][1] cases[0][2]:cases[1][2] cases[0][2]:cases[2][2] cases[0][3]:cases[1][3] cases[0][3]:cases[2][3] cases[0][4]:cases[1][4] cases[0][4]:cases[2][4] 以上結論,發生變化的為: i 取值範圍是(1,6)1,2,3,4,5 --->也就是cases[1],cases[2]...cases[5]取出的是列表中第二條到最後一條的資料 j 取值範圍是(0,5)0,1,2,3,4--->也就是cases[0][0]...cases[0][j],對應取出的是第一條資料中的每個值 使用for迴圈巢狀,當i=1,j分別為0,1,2,3,4 對應的dic的對應關係就為,0,0--1,0 0,1--1,1 0,2--1,2... 依次類推就得到了上面的對應關係。 將對應關係儲存到一個列表中, 然後再儲存到一個空列表中,然後再遍歷當前的列表,轉換為字典的形式展示 ''' li1 = [] li2 = [] for i in range(1, len(cases)): li=[] for j in range(0, len(cases) - 1): dic = (cases[0][j], cases[i][j]) li.append(dic) li1.append(li) print(li1) for k in range(len(li1)): li2.append(dict(li1[k])) print(li2) 輸出結果: [[('case_id', 1), ('case_title', '用例1'), ('url', 'www.baudi.com'), ('data', '001'), ('excepted', 'ok')], [('case_id', 4), ('case_title', '用例4'), ('url', 'www.baudi.com'), ('data', '002'), ('excepted', 'ok')], [('case_id', 2), ('case_title', '用例2'), ('url', 'www.baudi.com'), ('data', '002'), ('excepted', 'ok')], [('case_id', 3), ('case_title', '用例3'), ('url', 'www.baudi.com'), ('data', '002'), ('excepted', 'ok')], [('case_id', 5), ('case_title', '用例5'), ('url', 'www.baudi.com'), ('data', '002'), ('excepted', 'ok')]] [{'case_id': 1, 'case_title': '用例1', 'url': 'www.baudi.com', 'data': '001', 'excepted': 'ok'}, {'case_id': 4, 'case_title': '用例4', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}, {'case_id': 2, 'case_title': '用例2', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}, {'case_id': 3, 'case_title': '用例3', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}, {'case_id': 5, 'case_title': '用例5', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}]