Python基础概念_4_控制流程
控制流程
5 控制流程
5.1?簡介
到目前為止我們所見到的程序,總是有一系列的語句,Python會很忠實(shí)地按照它們的順序執(zhí)行。如果你想要改變語句的執(zhí)行順序,該怎么辦呢?比如:根據(jù)時(shí)間打印“早上好”或者“晚上好”。聰明的你可能已經(jīng)猜到了。對,通過控制流程語句來實(shí)現(xiàn)。在Python 中常用的控制流語句有: if、for 和while
5.2 If語句
a) If語句簡介
讓我們先從一個(gè)輕松的話題開始認(rèn)識if吧。話說有一位焦急的母親在為自己的女兒物色男朋友,于是她們之間就有了下面的對話:
??????????? …
女兒:多大年紀(jì)了?
????? 母親:26。
????? 女兒:長的帥不帥?
????? 母親:挺帥的。
????? 女兒:收入高不?
? 母親:不算很高,中等情況。
? 女兒:是公務(wù)員不?
? 母親:是,在稅務(wù)局上班呢。
? 女兒:那好,我去見見。
???…
我們看張圖吧,這樣會更直觀:
機(jī)智的你會發(fā)現(xiàn)這個(gè)女孩在不停的做條件判斷,直至滿足自己的條件才見。所以if語句翻譯過來就是如果的意思,也就是判斷是否滿足某個(gè)條件,而else呢則是上個(gè)if的反面。比如這里判斷年齡是否大于30,那么else自然是小于等于30了。如果再判斷則使用elif用一個(gè)新的條件再判斷。
a)??僅含If語句
>>> salary=10001
>>> if(salary>10000):
...???? print("老板")
結(jié)果:老板
b)??If else語句
>>>salary=9999
>>>if(salary>10000):
...???? print("老板")
... else:
...???? print("屌絲")
...
結(jié)果:屌絲
c)??多層If語句
>>>if stafflevel == 3:# 判斷num的值
...???? print ('老板')
... elifstafflevel == 2:
...???? print ('經(jīng)理')
... elifstafflevel == 1:
...???? print ('員工')
... elifstafflevel < 0:# 值小于零時(shí)輸出
...???? print ('員工等級不能小于0')
... else:
...???? print ('輸入條件異常,請檢查你的輸入')# 條件均不成立時(shí)輸出
...
結(jié)果:老板
5.3 while語句
while翻譯過來是當(dāng)。
“當(dāng)山峰沒有棱角的時(shí)候
當(dāng)河水不再流
當(dāng)時(shí)間停住日夜不分
當(dāng)天地萬物化為虛有
我還是不能和你分手
不能和你分手”
a) 普通while語句
while語句類似if,即可當(dāng)滿足某個(gè)條件時(shí)執(zhí)行,不滿足時(shí)跳出循環(huán)。見如下示例:
>>> stafflevel=3
>>> while(stafflevel <6):
...???? stafflevel+=1
...???? print("員工等級:"+str(stafflevel))
...
結(jié)果:
員工等級:4
員工等級:5
員工等級:6
b) 結(jié)合else的while語句
>>> stafflevel=3
>>> while(stafflevel <6):
...???? stafflevel+=1
...???? print("員工等級:"+str(stafflevel))
... else:
...???? print("while循環(huán)結(jié)束")
...
?
結(jié)果:
員工等級:4
員工等級:5
員工等級:6
while循環(huán)結(jié)束
5.4 for語句
這里我們舉個(gè)例子,假設(shè)周一到周五是個(gè)時(shí)間序列,那么每天我們都要周而復(fù)始的去上班,只有到周末時(shí)才休息。這就是個(gè)For循環(huán)的例子,流程見下圖示意:
>>> for num in range(1,6):
...???? print("星期"+str(num)+"上班")
...
結(jié)果:
星期1上班
星期2上班
星期3上班
星期4上班
星期5上班
for循環(huán)另一例
如果你想遍歷一個(gè)字典里的元素可以這么寫:
>>> fruits = ['banana','apple',? 'mango']
>>> for fruit in fruits:
...????? print ('當(dāng)前水果 :', fruit)
...
結(jié)果:
當(dāng)前水果 : banana
當(dāng)前水果 : apple
當(dāng)前水果 : mango
5.5 break語句
Break語句是用來終止循環(huán)的,可以使用在for循環(huán)或者while循環(huán)里。
下面我給個(gè)一對情侶因?yàn)檎f謊分手的例子,話說一個(gè)女生很在意自己男朋友是否說話,但是不能接受一而再再而三的撒謊,所以當(dāng)她男朋友說了第5次說謊時(shí),她終于提出了分手。如下就是代碼示例:
>>> for num inrange(1,8):
...???? print("第"+str(num)+"次撒謊")
...???? if (num==5):
...???????????? print("已經(jīng)第5次說謊了,對不起我們分手吧!")
...???????????? break
...
第1次撒謊
第2次撒謊
第3次撒謊
第4次撒謊
第5次撒謊
已經(jīng)第5次說謊了,對不起我們分手吧!
注:本來這位女生的男朋友還準(zhǔn)備撒謊7次了,現(xiàn)在看來第5次就GameOver了。
5.6continue語句
我們還來舉個(gè)女生選男朋友的例子吧,這次通過工資來判斷,發(fā)現(xiàn)月工資小于10000的直接放棄掉,只要高于這個(gè)數(shù)的。程序見下:
>>> for num inrange(9000,13000,1000):
...???? print("當(dāng)前工資:"+str(num))
...???? if(num<=10000):
...???????????? print("工資太低了,"+str(num)+"不想見")
...???????????? continue
...??????????? ?print("執(zhí)行不到的代碼段!")
...???? print("這個(gè)男的工資"+str(num)+"差不多,我們見見吧!")
...
結(jié)果:
當(dāng)前工資:9000
工資太低了,9000不想見
當(dāng)前工資:10000
工資太低了,10000不想見
當(dāng)前工資:11000
這個(gè)男的工資11000差不多,我們見見吧!
當(dāng)前工資:12000
這個(gè)男的工資12000差不多,我們見見吧!
注:
1)? ?黃色高亮處不會被執(zhí)行到,這是因?yàn)楫?dāng)num不斷增加到11000時(shí)并不滿足num<=10000的條件,此時(shí)會跳轉(zhuǎn)到外層的for循環(huán),但不會執(zhí)行跟continue一級的后面的語句。
2)? ?初學(xué)者往往會搞不清楚break和continue的區(qū)別,其實(shí)很簡單,break是結(jié)束整個(gè)外層循環(huán),而continue在結(jié)束了自己條件后外層的循環(huán)還會繼續(xù)執(zhí)行。當(dāng)然兩者也有共同點(diǎn)就是跟他們一級的語句將永遠(yuǎn)不會被執(zhí)行到。
注意看上面例子你會發(fā)現(xiàn)for循環(huán)從9000一直到12000,當(dāng)然這里的步長是1000。也就是說沒中斷。但是如果我改成break程序,你會發(fā)現(xiàn)滿足break里的條件時(shí),for循環(huán)會立刻終止,也就是到10000時(shí)就停了。
>>> for num inrange(9000,13000,1000):
...???? print("當(dāng)前工資:"+str(num))
...???? if(num>=10000):
...???????????? print("工資太高了,"+str(num)+"不想見")
...???????????? break
...??????????? ?print("執(zhí)行不到的代碼段!")
...???? print("這個(gè)男的工資"+str(num)+"比較低,我們見見吧!")
...
5.7?總結(jié)
通過本章的學(xué)習(xí)我們已經(jīng)掌握了如何使用三種控制流程的語句: if 、while 和for 以及控制循環(huán)的break 和continue 語句。它們是Python 代碼段中最常用的部分。接下來,我們將學(xué)習(xí)如何創(chuàng)建和使用函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的Python基础概念_4_控制流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018余额宝存款上限
- 下一篇: 虽然美国印钞,但是中国无须印钞