Python?for循環(huán)詳細講解(附代碼實例)
一、for循環(huán)
for循環(huán):循環(huán)就是重復(fù)做某件事,for循環(huán)是python提供第二種循環(huán)機制(第一種是while循環(huán)),理論上for循環(huán)能做的事情,while循環(huán)都可以做。
目的:之所以要有for循環(huán),是因為for循環(huán)在循環(huán)取值(遍歷取值)比while循環(huán)更簡潔。
二、for循環(huán)語法如下
for 變量名 in 可迭代對象: # 此時只需知道可迭代對象可以是字符串\列表\字典,其實也可以是tuple(),set()
代碼一
代碼二
# # for循環(huán) # # 列表取值 # l = ['lsj','a','b'] # for x in l: # print(x) lsj a b ...
# 參照例1來介紹for循環(huán)的運行步驟 # 步驟1:從列表['lsj','a','b']中讀出第一個值賦值給x(x=‘lsj'),然后執(zhí)行循環(huán)體代碼 # 步驟2:從列表 ['lsj','a','b']
三、 for循環(huán)應(yīng)用案例
案例一:for循環(huán)實現(xiàn)方式
# 簡單版:for循環(huán)的實現(xiàn)方式 # l = ['lsj', 'b', 'c'] # 定義一個列表 # for x in l: # print(x) # lsj # b # c # 復(fù)雜版:while循環(huán)的實現(xiàn)方式 l = ["lsj","b","c"] i = 0 while i < 3: print(l[i]) i += 1 # lsj # b # c # 使用循環(huán)取出0-5的值 # 簡單版:for循環(huán)的實現(xiàn)方式一、 # for count in range(6): # range(6)會產(chǎn)生從0-5這6個數(shù) # print(count) # 復(fù)雜版:while循環(huán)的實現(xiàn)方式 # count = 0 # while count < 6: # print(count) # count += 1
案例二:遍歷字典
# 簡單版:for循環(huán)的實現(xiàn)方式 dic = {'name':'lsj','age':18,'gender':'male'} for k in dic: # for 循環(huán)默認取的是字典的key賦值給變量名k print(k,dic[k]) # name lsj # age 18 # gender male # 復(fù)雜版:while循環(huán)確實可以遍歷字典,后續(xù)將會迭代器部分詳細介紹
案例三:for循環(huán)嵌套
#請用for循環(huán)嵌套的方式打印如下圖形: ***** ***** ***** for i in range(3): for j in range(5): print("*",end='') print() # print()表示換行
四、總結(jié)for循環(huán)與while循環(huán)的異同
(1)相同之處:都是循環(huán),for循環(huán)可以干的事,while循環(huán)也可以干
(2)不同之處:
while循環(huán)稱之為‘’條件循環(huán)‘’,循環(huán)次數(shù)取決于條件何時變?yōu)榧?/p>
for循環(huán)稱之為"取值循環(huán)",循環(huán)次數(shù)取決in后包含的值的個數(shù)
五、for循環(huán)控制循環(huán)次數(shù):range()
in后直接放一個數(shù)據(jù)類型來控制循環(huán)次數(shù)有局限性:
當循環(huán)次數(shù)過多時,數(shù)據(jù)類型包含值的格式需要伴隨著增加
range功能介紹
range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 從0開始有頭無尾 range(1,10,1) # 1 2 3 4 5 6 7 8 9 設(shè)定開始,結(jié)束,步長 range(1,10,2) # 1 3 5 7 9
range()的補充:python2與python3的不同之處。
在python2中對range(10)的處理:一個籃子里面裝有10個雞蛋,空間較大。
在python3中對range(10)的優(yōu)化:一只可以下10個雞蛋的母雞,空間較小。
for搭配range,可以按照索引取值,(比較麻煩所以不推薦)
l = ['lsj', 'a', 'c'] # len(l) for i in range(len(l)): print(i, l[i]) for x in l: print(x)
PEP8規(guī)范寫法
for i in range(5): if i == 4:continue # PEP8規(guī)范不建議這樣寫 print(i) for i in range(5): if i == 4: continue # PEP8規(guī)范這樣寫 print(i)
六、for循環(huán)的跳出
for+break: 同while循環(huán)一樣,只要運行到break就會立刻中止本層循環(huán)
for+else:同while循環(huán)一樣,只要運行到break就立即終止本次循環(huán)
總結(jié):for+break,for+continue,for+else的用法與while相同
練習一:
# 打印九九乘法表 for i in range(1,10): for j in range(1,i+1): print('%s*%s=%s' %(i,j,i*j),end=' ') print()
練習二:
# 打印金字塔 # 分析 ''' #max_level=5 * # current_level=1,空格數(shù)=4,*號數(shù)=1 *** # current_level=2,空格數(shù)=3,*號數(shù)=3 ***** # current_level=3,空格數(shù)=2,*號數(shù)=5 ******* # current_level=4,空格數(shù)=1,*號數(shù)=7 ********* # current_level=5,空格數(shù)=0,*號數(shù)=9 # 數(shù)學表達式 空格數(shù)=max_level-current_level *號數(shù)=2*current_level-1 ''' # 實現(xiàn): max_level=5 for current_level in range(1,max_level+1): for i in range(max_level-current_level): print(' ',end='') #在一行中連續(xù)打印多個空格 for j in range(2*current_level-1): print('*',end='') #在一行中連續(xù)打印多個空格 print()
總結(jié)
到此這篇關(guān)于Python for循環(huán)的文章就介紹到這了,更多相關(guān)Python for循環(huán)詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python virtualenv虛擬環(huán)境配置與使用教程詳解
這篇文章主要介紹了python virtualenv虛擬環(huán)境配置與使用教程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Python爬蟲如何應(yīng)對Cloudflare郵箱加密
這篇文章主要介紹了Python爬蟲如何應(yīng)對Cloudflare郵箱加密,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式
這篇文章主要介紹了Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05使用Python如何測試InnoDB與MyISAM的讀寫性能
網(wǎng)上有很多評論myisam和innodb讀寫性能對比,所以下面這篇文章主要給大家介紹了關(guān)于使用Python如何測試InnoDB與MyISAM讀寫性能的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2018-09-09python異步編程之a(chǎn)syncio高階API的使用詳解
asyncio中函數(shù)可以分為高階函數(shù)和低階函數(shù),通常開發(fā)中使用更多的是高階函數(shù),本文主要為大家介紹了asyncio中常用的高階函數(shù),需要的可以參考下2024-01-01django模板結(jié)構(gòu)優(yōu)化的方法
這篇文章主要介紹了django模板結(jié)構(gòu)優(yōu)化的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02