Python循環語句應該怎么寫


Python有兩種循環模式,我們先講遍歷循環。
先看一個案例:

for i in range(1,10):
print(i,end = '')
 
打印出來些什么?是不是123456789?大家仔細看這個代碼,是不是有我們昨天說的:縮進。我們現在來看看遍歷循環的格式:

for 循環變量 in 遍歷結構:
語句塊

大家肯定搞不明白:什么叫遍歷???
遍歷結構可以是字符串、文件、range()函數或組合數據類型等。
遍歷循環可以理解為從遍歷結構中逐一提取元素,放在循環變量中,對於每個所提取的元素執行一次語句塊。for語句的循環執行次數是根據遍歷結構中元素個數確定的

這下懂了吧。如果還不懂,我有個圖,不過大家應該看不懂…
所以就不展示了吧…
沒關系,其實大家多練練就好了。
下面給大家講講range函數:

range(a,b,c)

a是開始,默認為0。b是結束的(不算),c是步長,默認為1。比如:

for i in range(1,5): #1,2,3,4
print(i)
print(i)
 
我們來解析一下:
第一次循環,i被賦值為1,打印為1
第二次循環,i被賦值為2,打印為2
第三次循環,i被賦值為3,打印為3
第四次循環,i被賦值為4,打印為4
循環結束,最后打印i,i的值最后被賦值為4,因此打印4,所以所有的運行結果為:
 

為什么換行?很簡單,我們沒加end = ‘’,加了就行了。

我們再來個難一點的:

for i in range(1,5):
if i == 2:
print('i是2,你中獎了!')
else:
print('i是{},你沒中獎。'.format(i))
 
這個我們再來分析分析:
第一次循環,i被賦值為1,i不為2,因此打印出:i是1,你沒中獎。
第二次循環,i被賦值為2,i為2,因此打印出:i是2,你中間獎了!
第三次循環,i被賦值為3,i不為2,因此打印出:i是3,你沒中獎。
第四次循環,i被賦值為4,i不為2,因此打印出:i是4,你沒中獎。

不難吧?現在我們來個好玩的:

for i in range(1,10):
for j in range(1,i+1):
print('{}*{}={} '.format(i,j,i*j),end = '')
print('')
 
打印了什么,乘法表對吧?自行分析一下吧!

現在我們來講講無限循環。

i = 0
while True:
print(i)
i += 1
 
你的電腦卡了嗎?呵呵,沒錯,這就是無限循環,好了,現在停下程序,來看干貨。

while 條件:
語句塊

當程序執行到while語句時,判斷條件如果為True,執行語句塊,語句結束后返回再次判斷while語句的條件;當條件為False時,循環終止。繼續后續語句。

講到無限循環,那我們怎么讓程序跳出無限循環且不手動停止程序呢?這里就有兩個關鍵字:

break
continue

我們先用for語句試一試break

a = 'python'
for i in a:
if i == 'h':
print('\n你輸入的內容里有h,h是違規字。')
break
print(i,end = '')
 
我們再用試一試continue

a = 'python'
for i in a:
if i == 'h':
print('\n你輸入的內容里有h,h是違規字。')
continue
print(i,end = '')
 
這兩個有什么區別呢?雖然結果不同,但是說明了什么呢?

break用來跳出當前循環,脫離該循環后程序從循環后代碼繼續執行。
如果有2層或多層循環,break退出最內層循環。

continue用來結束當前當次循環,即跳出循環體中下面尚未執行的語句,但不跳出當前循環。

一頭霧水,對吧,那我們還是來分析分析程序:

第一個用break的:
第一次循環,i為’p’,不為’h’,打印’p’
第二次循環,i為’y’,不為’h’,打印’y’
第三次循環,i為’t’,不為’h’,打印’t’
第四次循環,i為’h’,打印’你輸入的內容里有h,h是違規字。'跳出內循環。

第二個用continue的:
第一次循環,i為’p’,不為’h’,打印’p’
第二次循環,i為’y’,不為’h’,打印’y’
第三次循環,i為’t’,不為’h’,打印’t’
第四次循環,i為’h’,打印’你輸入的內容里有h,h是違規字。’,跳出本次循環
第五次循環,i為’o’,不為’h’,打印’o’
第六次循環,i為’n’,不為’h’,打印’n’

這下懂了吧。

然后現在講兩種擴展模式:

for 循環變量 in 遍歷結構:
語句塊1
else:
語句塊2

當for循環正常執行之后,程序會繼續執行else語句中內容。else語句只在循環正常執行之后才執行並結束,因此,可以在語句塊2中放置判斷循環執行情況的語句。

while 條件:
語句塊1
else:
語句塊2

當while循環正常執行之后,程序會續執行else語句中內容。else語句只在循環正常執行后才執行,因此,可以在語句塊2中放置判斷循環執行情況的語句。


————————————————
版權聲明:本文為CSDN博主「波斯王」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Persia_king/article/details/105046787


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM