
一、Python for in循環
Python for in 循環,是用來遍歷任何數據序列,如一個列表,一個字符串,一個字典,一個元組等。
for in 循環的一般語法如下:
for item in 序列:語句塊else:語句塊
for in 字符串:把每個字符循環出來
'''字符串:把每個字符循環出來'''str1 = '老樹Python''''把字符串str1元素進行循環,每循環出一個元素,就把該元素賦值給item'''for item in str1:print(item)運行結果:老樹Python?
for in 列表:把列表中每個元素循環出來
'''for in 列表'''list1 = ['Python','Java','PHP','C#']?''' 循環list1中的每個元素,然后循環到的元素賦值給item'''for item in list1: print(item)運行結果:PythonJavaPHPC#?
for in 字典:把字典中每對鍵值循環出來
我們在第十章學習字典時,知道可以通過dict.keys()和dict.values()求得字典的所有key和value.
那么我們可以通過把dict.keys()循環出單個key,然后通過dict['key']來求得key,value對應的值
同時,我們直接 for in dict 循環出來的也是key
'''for in 字典:遍歷key值'''?dict1 = {'Lim':'98','Tom':'99','Jim':'89'}print('所有keys:',dict1.keys())print('for in dict1.keys()')for key in dict1.keys():print(key + ':' + dict1[key])?print('直接for in dict1')for key in dict1:print(key + ':' + dict1[key])運行結果:所有keys: dict_keys(['Lim', 'Tom', 'Jim'])for in dict1.keys()Lim:98Tom:99Jim:89直接for in dict1Lim:98Tom:99Jim:89
可以看出上述兩個for in 循環運行的結果一致
'''for in 字典:遍歷value'''dict1 = {'Lim': '98', 'Tom': '99', 'Jim': '89'}print('所有values:', dict1.values())?for value in dict1.values():print(value)?運行結果:989989
遍歷字典鍵值key,value項
'''for in 字典:遍歷value'''dict1 = {'Lim': '98', 'Tom': '99', 'Jim': '89'}print('dict1.items是:',dict1.items())for kv in dict1.items(): #dict1.items()print(kv)
運行結果:
dict1.items是: dict_items([('Lim', '98'), ('Tom', '99'), ('Jim', '89')])('Lim', '98')('Tom', '99')('Jim', '89')
遍歷字典鍵值
'''for in 字典:遍歷key,value'''dict1 = {'Lim': '98', 'Tom': '99', 'Jim': '89'}?for key,value in dict1.items(): # dict1.items()print(key + ':' + value)print('上下兩個方法效果是一樣的')for (key,value) in dict1.items():print(key + ':' + value)?
運行的結果:
Lim:98Tom:99Jim:89上下兩個方法效果是一樣的Lim:98Tom:99Jim:89
二、range()函數
range()函數為python內置函數,用于生成一系列的連續的整數,其語法格式為:
range(start,end,step)
注:start指的是計數起始值,默認為0;end指的是計數結束值,但不包括end; step是步長,默認為1,不可以為0.
range()方法生成一段左閉右開的整數范圍。
在使用range()函數時,
如果只有一個參數,就表示end,從0開始;
如果有兩個參數,就表示start和end.
如果有三個參數,最后一個就表示步長。
它接收的參數必須是整數,可以是負數,但不能是浮點數或其它類型。
range()是不可變的序列類型,可以進行判斷元素、查找元素、切片等操作,但不能修改元素。
rg = range(1,8)print(rg)print(rg[0])print(rg[1:4])print(rg[:-3])
運行結果:
range(1, 8)1range(2, 5)range(1, 5)rg = range(1,8)rg[2]=2
運行結果:
rg[2]=2TypeError: 'range' object does not support item assignment
可以看出不支持修改
它會生成數列,這樣我們就會可以來遍歷數字序列。
for num in range(6):print(num)運行結果:012345
step為-5
rg = range(-15,-35,-5)for num in rg:print(num)
運行結果:
-15-20-25-30
這述這個例子中,大家可以試著把-15改成-65看看運行結果。然后繼續再把-5改成5看看運行結果。當看明白改動后的變化,你就明白了,start,end誰大誰小,以及step是正數不是負數。
我們剛才print(range(1,8)),打印出來的結果是: range(1,8),而不是列表類型。
我們可以用list(range(1,8))直接把range()變為list類型
rg = range(1,8)print(rg)print(list(rg))
運行的結果:
range(1, 8)[1, 2, 3, 4, 5, 6, 7]
結束語:
這一篇我們學習了for in 循環字符串,列表,字典等。重點在循環字典時,如何取得key,value值等。
同時我們對Python內置函數range()進行了了解。這個函數將在以后的項目中使用得比較多。
原創不易,喜歡就給個贊,點個關注吧!
更多的內容可以關注公眾號:老樹Python
推薦閱讀:
老樹Python:一步一步學Python3(小學生也適用) 第十六篇:循環語句While循環?zhuanlan.zhihu.com


