零基礎(chǔ)Python完全自學(xué)教程12:Python中的循環(huán)語句
歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ)Python完全自學(xué)教程》今天給大家分享的是第12課《Python中的循環(huán)語句》。本節(jié)課主要內(nèi)容有:Python中的whi
永久美國免備案虛擬主機(jī)1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費(fèi)查看答案和答案解析
歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ)python完全自學(xué)教程》今天給大家分享的是第12課《Python中的循環(huán)語句》。本節(jié)課主要內(nèi)容有:Python中的while循環(huán)、Python中的for循環(huán)、Python中的循環(huán)嵌套。
回顧一下上節(jié)課的內(nèi)容:第11課 Python中的選擇語句:最簡單的if語句、if...else語句、if...elif...else語句、選擇語句的嵌套。看起來是不是比較相似呢?一個(gè)是選擇語句,一個(gè)是循環(huán)語句。
循環(huán)很容易理解,就是周而復(fù)始的重復(fù)下去,直到條件改變才會(huì)終止。比如每天的公交車、地鐵等公共交通工具必須不斷的往返于始發(fā)站和終點(diǎn)站。類似的反復(fù)做同一件事的情況稱為循環(huán)。
循環(huán)語句 (Loop statement) 又稱重復(fù)結(jié)構(gòu),用于反復(fù)執(zhí)行某一操作。
在Python中,循環(huán)主要有以下兩種類型:
1、一直重復(fù),直到條件 不滿足時(shí)才結(jié)束的循環(huán),稱為條件循環(huán)。只要條件為真,這種循環(huán)就會(huì)一直持續(xù)下去。如while循環(huán)。(while中文意思是:雖然;在…期間;當(dāng)…的時(shí)候;與…同時(shí);)
2、重復(fù)一定次數(shù)的循環(huán),稱為計(jì)次循環(huán),如for循環(huán)。(for中文意思是:對于;為了;給,對,供;以幫助;關(guān)于)
接下來就詳細(xì)講講這兩種類型的循環(huán)。
12.1、Python中的while循環(huán)
while循環(huán)就是條件循環(huán),是通過一個(gè)條件來控制是否要繼續(xù)反復(fù)執(zhí)行循環(huán)體中的語句。其語法格式如下:
while 條件表達(dá)式
循環(huán)體
注:循環(huán)體是一組被重復(fù)執(zhí)行的語句(代碼塊)。
當(dāng)條件表達(dá)式的返回值為真時(shí),將執(zhí)行循環(huán)體的語句,執(zhí)行完畢后,重復(fù)判斷條件表達(dá)式的返回值,直到條件表達(dá)式返回的結(jié)果為假是,退出循環(huán)。while循環(huán)語句執(zhí)行流程圖,如圖12.1所示:
圖12.1 while循環(huán)語句執(zhí)行流程圖
實(shí)例12.1、繼續(xù)講解黃蓉與瑛姑見面的數(shù)學(xué)題。(while循環(huán)版)
使用while循環(huán),實(shí)現(xiàn)從1開始依次嘗試符號(hào)條件的數(shù),直到找到符合條件的數(shù)才退出循環(huán)。
實(shí)現(xiàn)方法:
實(shí)現(xiàn)定義一個(gè)用于計(jì)數(shù)的 變量number (number 是數(shù)字的單詞)和一個(gè)作為循環(huán)條件的變量none (none是沒有的單詞,默認(rèn)值為真),然后編寫while語句,在循環(huán)體中,變量number的值加1,并且判斷number的值是否符合條件,當(dāng)符合條件時(shí),將變量none的值設(shè)置為假,從而退出循環(huán)。具體代碼如下:
print("今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問幾何?\n")
none = True # 作為循環(huán)條件的變量
number = 0 # 計(jì)數(shù)的變量
while none:
number += 1 # 計(jì)數(shù)加1
if (number%3 ==2) and (number%5 ==3) and (number%7 ==2): # 判斷是否符合條件
print("答曰:這個(gè)數(shù)是",number) # 輸出符合條件的數(shù)
none = False # 將循環(huán)條件的變量賦值為否
執(zhí)行結(jié)果:
今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問幾何?
答曰:這個(gè)數(shù)是 23
>>>
當(dāng)然,上面我們的計(jì)數(shù)的變量是0,加1以后是1開始,我們可以設(shè)置成24開始,就會(huì)得到一個(gè)數(shù)字是128,執(zhí)行結(jié)果:
今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問幾何?
答曰:這個(gè)數(shù)是 128
>>>
當(dāng)然,我們又把起始數(shù)字改成129,就會(huì)得到233,以此類推;23,128,233,338,443……等有無窮無盡的數(shù)字滿足條件。所以在代碼中最后一行的none = False
一定要加上。否則就會(huì)無限循環(huán)下去。
12.2、Python中的for循環(huán)
for循環(huán)是一個(gè)計(jì)次循環(huán),一般應(yīng)用于循環(huán)次數(shù)已知的情況下。通常用于枚舉或遍歷序列,以及迭代對象中的元素。起語法格式如下:
for 迭代變量 in 對象:
循環(huán)體
其中:
迭代變量用于保存讀取的值;
對象為要遍歷或迭代的對象,該對象可以是任何有序的序列對象,如字符串、列表、和元組等;
循環(huán)體為一組被重復(fù)執(zhí)行的語句。
for循環(huán)語句的執(zhí)行流程圖,如圖12.2所示:
圖12.2、for循環(huán)語句執(zhí)行流程圖
12.2.1、進(jìn)行數(shù)值循環(huán)
在使用for循環(huán)時(shí),最常用的就是數(shù)值循環(huán)。還記得小學(xué)題目“1+2+3+……+100=?”的題目嗎?即求1~100的和。在這里可以使用代碼實(shí)現(xiàn):
print("計(jì)算 1+2+...+100 的結(jié)果為:")
result = 0 #保存累加結(jié)果的變量
for i in range(101): #逐個(gè)獲取從 1 到 100 這些值
result += i #做累加操作
print(result) #實(shí)現(xiàn)循環(huán)結(jié)束是輸出結(jié)果
運(yùn)行后的結(jié)果為:
計(jì)算 1+2+...+100 的結(jié)果為:
5050
>>>
上述代碼中,使用了range()函數(shù),該函數(shù)是Python中的內(nèi)置函數(shù),用于生成一系列的連續(xù)的整數(shù),主要用于for循環(huán)中,起語法格式如下:
range(start,end,step)
各參數(shù)說明如下:
start:用于指定技術(shù)的起始值,可以省略。如果省略則從0開始。
end:用于指定計(jì)數(shù)的結(jié)束值,不能省略。結(jié)束值不包括該值,如range(100),則表示值為0~99。當(dāng)range()函數(shù)只有一個(gè)參數(shù)時(shí),即表示指定計(jì)數(shù)的結(jié)束值。
step:用于指定步長,即兩個(gè)數(shù)之間的間隔,可以省略。如果省略則表示步長為1。如range(1,7)則表示值為1、2、3、4、5、6、
注意:在使用range()函數(shù)時(shí):
1、如果只有一個(gè)參數(shù),那么表示指定的是end;
2、如果只有兩個(gè)參數(shù),那么表示指定的是start和end;
3、只有三個(gè)參數(shù)都存在時(shí),最后一個(gè)參數(shù)step才表示步長。
例如。使用下列for循環(huán)語句,將輸出20以內(nèi)的所有奇數(shù):
for i in range(1,20,2):
print(i,end = ",")
運(yùn)行結(jié)果如下:
1,3,5,7,9,11,13,15,17,19,
>>>
在Python中,使用print()函數(shù)時(shí),如果想要實(shí)現(xiàn)輸出的內(nèi)容在一行上面顯示,就需要加上“,end = "分隔符"”,這里是使用,作為分隔符。如果不加則豎排顯示,一行顯示一個(gè),自己測試效果。
實(shí)例12.2、使用for循環(huán)解決黃蓉與瑛姑見面的數(shù)學(xué)題。(for循環(huán)版)
使用for循環(huán)語句實(shí)現(xiàn)1循環(huán)到100(不含100),并且記錄符合黃蓉要求的數(shù)。
具體實(shí)現(xiàn)方法:應(yīng)用for循環(huán)語句從1迭代到100,在循環(huán)體中,判斷迭代變量number 是否符合“三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二”的要求,如果符合,則應(yīng)用print()函數(shù)輸出,否則繼續(xù)循環(huán)。代碼如下:
print("今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問幾何?\n")
for number in range(100):
if (number%3 ==2) and (number%5 ==3) and (number%7 ==2): # 判斷是否符合條件
print("答曰:這個(gè)數(shù)是",number) # 輸出符合條件的數(shù)
運(yùn)行程序,輸出結(jié)果如下:
今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問幾何?
答曰:這個(gè)數(shù)是 23
>>>
上面是循環(huán)到100的,我們試試循環(huán)到1000看看,輸出結(jié)果為:
今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問幾何?
答曰:這個(gè)數(shù)是 23
答曰:這個(gè)數(shù)是 128
答曰:這個(gè)數(shù)是 233
答曰:這個(gè)數(shù)是 338
答曰:這個(gè)數(shù)是 443
答曰:這個(gè)數(shù)是 548
答曰:這個(gè)數(shù)是 653
答曰:這個(gè)數(shù)是 758
答曰:這個(gè)數(shù)是 863
答曰:這個(gè)數(shù)是 968
>>>
重新修改一下代碼,循環(huán)到10000,輸出的話,只是輸出數(shù)字,并且在一行顯示,自己修改代碼哦!顯示如下,那么你就修改對了:(自己動(dòng)動(dòng)腦筋,學(xué)會(huì)根據(jù)原有代碼,舉一反三的改動(dòng),站長在線不在公布代碼,但是公布結(jié)果)
今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問幾何?
答曰:在1-10000中,這些數(shù)都符合:
23,128,233,338,443,548,653,758,863,968,1073,1178,1283,1388,1493,1598,1703,1808,1913,2018,2123,2228,2333,2438,2543,2648,2753,2858,2963,3068,3173,3278,3383,3488,3593,3698,3803,3908,4013,4118,4223,4328,4433,4538,4643,4748,4853,4958,5063,5168,5273,5378,5483,5588,5693,5798,5903,6008,6113,6218,6323,6428,6533,6638,6743,6848,6953,7058,7163,7268,7373,7478,7583,7688,7793,7898,8003,8108,8213,8318,8423,8528,8633,8738,8843,8948,9053,9158,9263,9368,9473,9578,9683,9788,9893,9998,
>>>
12.2.2、遍歷字符串
使用for循環(huán)語句除了可以循環(huán)數(shù)值,還可以遍歷字符串,列如:下面代碼將橫向顯示的字符串轉(zhuǎn)換為縱向顯示:
string = "建一個(gè)網(wǎng)站,創(chuàng)一番事業(yè)"
print(string) #橫向顯示
for ch in string:
print(ch) #縱向顯示
執(zhí)行代碼如下:
建一個(gè)網(wǎng)站,創(chuàng)一番事業(yè)
建
一
個(gè)
網(wǎng)
站
,
創(chuàng)
一
番
事
業(yè)
>>>
12.3、Python中的循環(huán)嵌套
我們在上一節(jié)課中,講到了《選擇語句的嵌套》。同樣的,循環(huán)語句是也是可以嵌套的。
在Python中,允許在一個(gè)循環(huán)體中嵌入另一個(gè)循環(huán)體中,這稱為循環(huán)嵌套。while循環(huán)和for循環(huán)都可以相互嵌套。
12.3.1、在while中套用while:
while 條件表達(dá)式1:
while 條件表達(dá)式2:
循環(huán)體2
循環(huán)體1
12.3.2、在for中套用for:
for 迭代變量1 in 對象1:
for 迭代變量2 in 對象2:
循環(huán)體2
循環(huán)體1
12.3.3、在while中套用for:
while 條件表達(dá)式:
for 迭代變量 in 對象:
循環(huán)體2
循環(huán)體1
12.3.4、在for中套用while:
for 迭代變量 in 對象:
while 條件表達(dá)式:
循環(huán)體2
循環(huán)體1
除了上面的4種嵌套,還可以多層次嵌套,原理是一樣的,這里不在一一寫出了。
實(shí)例12.3、輸出九九乘法表
先來一個(gè)簡單的,使用while循環(huán),輸出類似九九乘法表的小星星。
i = 1 #起始值為1
while i <=9: #輸出最多9行
print(" * "*i) #輸出*的i倍數(shù)
i += 1 #計(jì)數(shù)+1
執(zhí)行結(jié)果如下:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
>>>
使用嵌套的for循環(huán),輸出九九乘法表,代碼如下:
for i in range(1,10): # 輸出9行
for j in range(1, i + 1): # 輸出與行數(shù)相等的列
print(str(j) + "×" + str(i) + "=" + str(i * j) + "\t",end = '')
print('') # 換行
上述代碼使用了雙層的for循環(huán),第一個(gè)for代表輸出9行,同時(shí)也是乘數(shù);第二個(gè)for循環(huán)控制乘法表的列數(shù),最大值等于行數(shù)。
運(yùn)行結(jié)果如下:
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循環(huán),輸出九九乘法表。
到此為止,今日的《Python中的循環(huán)語句》講解的Python中的while循環(huán)、Python中的for循環(huán)、Python中的循環(huán)嵌套都講解完畢,課程里面的代碼自己去執(zhí)行了。沒有時(shí)間的復(fù)制代碼執(zhí)行一次,有時(shí)間的,親自把代碼敲出來進(jìn)行練習(xí)。明白其中的意思,最好舉一反三,自己做實(shí)例。
下節(jié)預(yù)告:零基礎(chǔ)Python完全自學(xué)教程13:Python中的break語句、continue語句和pass語句
相關(guān)閱讀:
9、Python中運(yùn)算符的優(yōu)先級(jí)和條件表達(dá)式
11、Python中的選擇語句
文末福利:
1、關(guān)注站長在線官方公眾號(hào)【站長在線】微信號(hào):olzzcom ,文末也有公眾號(hào)二維碼,關(guān)注公眾號(hào)以后回復(fù)python,本站精心整理的Python書籍、軟件、工具都實(shí)時(shí)更新哦!本站所安裝的python3.10、 IDLE中文版 、PyCharm、Visual Studio Code、Sublime Text4等都在里面哦!
2、站長在線官方微信交流群已經(jīng)開通了,微信掃碼進(jìn)入,一起交流,一起進(jìn)步!
本文地址:http://003188.cn/pythonxhyj.html
阿里云虛擬主機(jī)1G空間,120元一年
香港、美國虛擬主機(jī)100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡