1. 程式人生 > 實用技巧 >Python for迴圈語句

Python for迴圈語句

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'}]