Python?循環(huán)結(jié)構(gòu)詳解
前言:
在編寫代碼時如果能夠簡化一個程序,把重復的代碼形成公共部分,利用語法來控制,對代碼進行循環(huán)往復的執(zhí)行,這就形成了循環(huán)結(jié)構(gòu)邏輯。
一、While循環(huán)
While循環(huán)的語法格式如下:
while 條件表達式 :
代碼段(包含改變計數(shù)器值的語句)
while 關(guān)鍵詞后面緊跟的條件表達式?jīng)Q定了循環(huán)是夠進行下去。
下面用while語句實現(xiàn)求1~100的累加和,代碼如下:
count = 1?? ??? ?#計數(shù)器 sum0 = 0?? ??? ?#統(tǒng)計和值,初始值為0 while count <= 100 : ? ? sum0 += count ? ? count += 1 print(sum0)
運行結(jié)果如下:
While循環(huán)的語法要點需要做的就是以下三件事:
- 1、定義計數(shù)器的初始值,這個計數(shù)器可以計數(shù),也可以用作求解問題的數(shù)字處理。
- 2、While循環(huán)條件保證計數(shù)器在一定條件下退出循環(huán)。
- 3、循環(huán)做的事情放在循環(huán)體里,同是不要忘記計數(shù)器的疊加效果。
二、While…else…循環(huán)
While…else…的語法格式如下:
while 條件表達式 :
代碼塊1
改變計數(shù)器的值
else :
代碼塊2
這個格式比原來基本的while格式讀了一個else語句,器質(zhì)性流程也多了一步流程,即當while循環(huán)體正常執(zhí)行完后執(zhí)行else代碼塊中的內(nèi)容。
下面用while語句實現(xiàn)銀行卡吞卡驗證,代碼如下:
count = 1 password = input("輸入密碼:") while count < 3 : ? ? if password == "000000" : ? ? ? ? print("密碼正確,您可以取款了") ? ? ? ? break ? ? else : ? ? ? ? input("密碼錯誤,請再一次輸入密碼:") ? ? count += 1 else: print("密碼錯誤,卡被吞")
運行結(jié)果如下:
break用
來推出循環(huán)體,不再執(zhí)行本層循環(huán)。
三、for循環(huán)
while循環(huán)和for循環(huán)用于處理不同的問題,while應(yīng)用在不知道循環(huán)次數(shù)的情況下,for應(yīng)用在確定循環(huán)次數(shù)的情況下。
for循環(huán)語句的格式如下:
for 臨時變量 in 可迭代對象 :
循環(huán)體
執(zhí)行過程就是將每一個可迭代對象中的每一個元素復制給臨時變量,再執(zhí)行循環(huán)體。當可迭代對象中的元素全部遍歷完后for循環(huán)就停止運行。
如用for循環(huán)求1~100的累加和,代碼如下:
sum0 = 0 for count in range(1,101,1) : ? ? sum0 += count print(sum0)
以上代碼看上去比while循環(huán)簡單一些,所以變成習慣上使用for循環(huán)。
注意: Python的區(qū)間左邊可以等于,右邊一定不等于,即左閉右開。
range函數(shù)可以接受3個參數(shù),range
(start,stop,step)產(chǎn)生一個從start開始到stop結(jié)束的一個整數(shù)序列,step是步長。
四、for…else…循環(huán)
While…else…的語法格式如下:
for 臨時變量 in 可迭代對象 :
循環(huán)體
else :
代碼塊2
當for循環(huán)體正常執(zhí)行完后執(zhí)行else代碼塊中的內(nèi)容,否則不會執(zhí)行else中的代碼。
如上述銀行卡吞卡使用for循環(huán)就會這樣寫:
password = input("輸入密碼:") for i in range(1,3,1) : ? ? if password == "000000" : ? ? ? ? print("密碼正確,您可以取款了") ? ? ? ? break ? ? else : ? ? ? ? input("密碼錯誤,請再一次輸入密碼:") else: print("密碼錯誤,卡被吞")
運行結(jié)果如下:
五、循環(huán)體結(jié)束語句
Python
的循環(huán)邏輯控制是依靠for和while
這兩種語句來實現(xiàn)的。但是,有時不需要把循環(huán)執(zhí)行完,條件合適時需要直接退出循環(huán),這時可以使用break語句。還有一種需求,不需要退出整個循環(huán),而是退出本次循環(huán),可以使用continue
語句。這兩個語句的區(qū)別如下:
- 1、
break
用于完全結(jié)束一個循環(huán),跳出循環(huán)體之行循環(huán)后面的語句。 - 2、
continue
只是終止本次循環(huán),接著還之行后面的循環(huán)。
下面經(jīng)過具體實例來了解break和continue的使用:
- 循環(huán)打印奇數(shù)
如果判斷是偶數(shù),進入下一次循環(huán),如果判斷是奇數(shù),直接打印。
for i in range(1,11) : ? ? if i%2==0 : ? ? ? ? continue ? ? print(i)
運行如下:
- 循環(huán)打印閏年
循環(huán)找出2020-2051年中的第一個閏年。
for year in range(2020,2051) : ? ? if year%4==0 and year%100!=0 or year%400==0 : ? ? ? ? print(year) ? ? ? ? break
運行如下:
六、嵌套循環(huán)
以打印九九乘法表為例:
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
分析以上九九乘法表的思路,從輸出格式中可以看到數(shù)字是從1乘1一直到9乘9,要形成1到9兩個數(shù)交叉相乘的效果,就必須依靠循環(huán)嵌套
代碼如下:
for i in range(1,10) : ? ? for j in range(1,10) : ? ? ? ? print("%d*%d=%d"%(i,j,i*j))
運行結(jié)果如下:
可以看出以上代碼打印的是豎向的乘法表,原因是目前的結(jié)束符是換行,修改結(jié)束符即可?,F(xiàn)在把結(jié)束符換成“/t”制表符。
修改后的代碼如下:
for i in range(1,10) : ? ? for j in range(1,10) : ? ? ? ? print("%d*%d=%d"%(i,j,i*j),end="\t") ? ? print()
運行結(jié)果如下:
此時每一行的的第一個字符相等,與結(jié)果的每一列字符相等,所以輸出可以將i和j互換。并且,應(yīng)該是第一行只留11,第二行只留12,2*2,以此類推才能實現(xiàn)要求的乘法表。具體方法是當外層循環(huán)比內(nèi)層循環(huán)數(shù)字小時,退出本層循環(huán)。
最終代碼如下:
for j in range(1,10) : ? ? for i in range(1,10) : ? ? ? ? if i > j : ? ? ? ? ? ? continue ? ? ? ? print("%d * %d = %d"%(i,j,i*j),end="\t") ? ? print()
運行結(jié)果如下:
到此這篇關(guān)于Python 循環(huán)結(jié)構(gòu)詳解的文章就介紹到這了,更多相關(guān)Python 循環(huán)結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python讀取英文文件并記錄每個單詞出現(xiàn)次數(shù)后降序輸出示例
這篇文章主要介紹了Python讀取英文文件并記錄每個單詞出現(xiàn)次數(shù)后降序輸出,涉及Python文件讀取、字符串替換、分割以及字典遍歷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06pytorch加載自己的圖片數(shù)據(jù)集的2種方法詳解
數(shù)據(jù)預(yù)處理在解決深度學習問題的過程中,往往需要花費大量的時間和精力,下面這篇文章主要給大家介紹了關(guān)于pytorch加載自己的圖片數(shù)據(jù)集的2種方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-06-06python 對任意數(shù)據(jù)和曲線進行擬合并求出函數(shù)表達式的三種解決方案
這篇文章主要介紹了python 對任意數(shù)據(jù)和曲線進行擬合并求出函數(shù)表達式的三種解決方案,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02淺談python中的getattr函數(shù) hasattr函數(shù)
下面小編就為大家?guī)硪黄獪\談python中的getattr函數(shù) hasattr函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06