python三种基本控制结构_Python学习手册之控制结构(一)
在上一篇文章中,我們對(duì) Python 進(jìn)行了簡(jiǎn)單介紹和介紹了 Python 的基本語(yǔ)法,現(xiàn)在我們繼續(xù)介紹 Python 控制結(jié)構(gòu)。
查看上一篇文章請(qǐng)點(diǎn)擊:https://www.cnblogs.com/dustman/p/9966048.html
布爾比較
布爾
Python 有許多種數(shù)據(jù)類(lèi)型,其中一種類(lèi)型叫布爾,英文表示為 Boolean。它包含兩個(gè)值:True 和 False。
有兩種方式可以聲明數(shù)據(jù)類(lèi)型是布爾型。一種是直接聲明,另外一種是通過(guò)值比較產(chǎn)生,比如等于運(yùn)算符==。
>>> boolean =True>>>boolean
True>>> 1 == 2False>>> ‘me‘ == ‘me‘True
小心不要混淆了賦值運(yùn)算符 = 和等于比較運(yùn)算符 ==。
比較
另外一個(gè)比較運(yùn)算符是不等于運(yùn)算符 !=,如果兩個(gè)值不相等返回True,否則返回 False。
>>> 1 != 1False>>> 1 != 2True>>> "day" != "today"True
我們還可以通過(guò)運(yùn)算符來(lái)比較一種數(shù)是大于或小于另外一個(gè)數(shù)。他們是 > 和 < 運(yùn)算符。
>>> 10 > 11False>>> 7 < 10True
在 Python 里還有大于或等于 >= 和小于或等于 <= 運(yùn)算符。
它們與大于或小于運(yùn)算符相同,只不過(guò)當(dāng)兩邊值相等時(shí),它們返回 True。
>>> 10 > 11False>>> 7 < 10True
大于或小于運(yùn)算符也可用于比較字符串(單詞的順序就是它字的順序,每一個(gè)字在計(jì)算里對(duì)應(yīng)一個(gè)數(shù)字)。
if語(yǔ)句
if條件判斷
空白區(qū)在 Python 中十分重要。實(shí)際上,空白區(qū)在各行的開(kāi)頭非常重要。這被稱(chēng)作縮進(jìn)(Indentation)在行的開(kāi)頭留下空白區(qū)(使用空格和制表符)用以確定各行的縮進(jìn)級(jí)別,而縮進(jìn)級(jí)別又用于確定語(yǔ)句的分組。
這意味著相同條件的語(yǔ)句必須擁有相同的縮進(jìn),每一組這樣的語(yǔ)句被稱(chēng)為塊(block)。
我們使用 if 語(yǔ)句實(shí)現(xiàn)條件判斷。根據(jù) Python 的縮進(jìn)規(guī)則,如果 if 語(yǔ)句的表達(dá)式計(jì)算結(jié)果為 True 那么縮進(jìn)的代碼塊被執(zhí)行了,否則縮進(jìn)的代碼塊不會(huì)被執(zhí)行。
ifname:
sex
錯(cuò)誤的縮進(jìn)會(huì)導(dǎo)致程序錯(cuò)誤或發(fā)生你不期望的結(jié)果。
下面是 if 聲明的例子:
if 10 < 20:print("10 smaller than 20")print("end")
表達(dá)式先判斷 10 是否小于 20, 其運(yùn)算結(jié)果為真,接下來(lái)運(yùn)行縮進(jìn)的那部分代碼輸出“10 smaller than 20”。然后運(yùn)行不是 if 聲明的那部分,也就是未縮進(jìn)的那部分輸出“end”。
>>>
10 smaller than 20end>>>
注意 if聲明里的比較運(yùn)算表達(dá)式需要冒號(hào)來(lái)結(jié)束。
如果程序包含多行代碼,你應(yīng)該將其創(chuàng)建一個(gè)文件并保存代碼。在命令行下使用 python file name 來(lái)運(yùn)行它。
我們經(jīng)常會(huì)遇到比較復(fù)雜的判斷條件,if 條件判斷可以嵌套在 if 條件判斷里。
也就是說(shuō)內(nèi)部的 if 條件判斷是外部 if 條件判斷的一部分嗎,這樣我們就能滿(mǎn)足支持多種情況的條件判斷。
num = 10
if num > 6:print("Bigger than 6")if num <= 40:print("Between 6 and 40")
運(yùn)行結(jié)果:
>>>Bigger than6Between6 and 40
>>>
else語(yǔ)句
如果一個(gè)包含 else 語(yǔ)句的 if 條件判斷,當(dāng) if 條件的判斷值為 False 時(shí),運(yùn)行 else 里的語(yǔ)句。
像 if 語(yǔ)句一樣,else 語(yǔ)句的代碼也必須縮進(jìn)。
x = 5
if x == 5:print("Yes")else:print("No")
運(yùn)行結(jié)果:
>>>Yes>>>
else 語(yǔ)句也必須像 if 語(yǔ)句一樣后面跟著冒號(hào):。
我們可以嵌套 if 和 else 語(yǔ)句來(lái)判斷哪個(gè)表達(dá)式是真的。
num = 4
if num == 5:print("Number is 5")else:if num == 10:print("Number is 10")else:if num == 4:print("Number is 4")else:print("Number isn‘t 4,5 or 10")
運(yùn)行結(jié)果:
>>>Numberis 4
>>>
elif語(yǔ)句
elif 語(yǔ)句是else if 的縮寫(xiě),主要用于多重判斷的語(yǔ)句。
if elif 多重判斷語(yǔ)句最后可以放置 else 語(yǔ)句,當(dāng)前面if elif 多重判斷語(yǔ)句最終無(wú)法在所有的分支上得出結(jié)果為 True 情況下,程序運(yùn)行else語(yǔ)句。
num = 4
if num == 5:print("Number is 5")elif num == 10:print("Number is 10")elif num == 4:print("Number is 4")else:print("Number isn‘t 4,5 or 10")
運(yùn)行結(jié)果:
>>>Numberis 4
>>>
if 語(yǔ)句執(zhí)行有個(gè)特點(diǎn),它是從上往下判斷,如果在某個(gè)判斷上是 True,則把該判斷對(duì)應(yīng)的語(yǔ)句執(zhí)行后就忽略掉剩下的 elif 和 else。
在其他語(yǔ)言里elif 語(yǔ)句有不同的語(yǔ)法變化,比如 else if,elseif或elsif。
布爾邏輯判斷
布爾邏輯判斷用于為依賴(lài)于多個(gè)條件的if語(yǔ)句創(chuàng)造更復(fù)雜的條件。
Python 布爾邏輯運(yùn)算符包含 and、or 和 not。
and 運(yùn)算符評(píng)估其運(yùn)算符兩邊的結(jié)果,如果兩邊返回結(jié)果都是 True則返回 True,否則返回 False 。
>>> 1 == 1 and 2 == 2True>>> 1 == 1 and 1 == 2False>>> 1 != 1 and 2 == 2False>>> 1 > 2 and 2 < 3False
Python 使用上面三個(gè)單詞作為布爾邏輯運(yùn)算符,其它語(yǔ)言使用符號(hào) &&、|| 和 !。
or 運(yùn)算符
or 運(yùn)算符評(píng)估其運(yùn)算符兩邊的結(jié)果,如果有其中一邊運(yùn)算的結(jié)果為 True 則返回 True,如果兩邊的結(jié)果都為 False 返回 False。
>>> 1 == 1 or 2 == 2True>>> 1 == 1 or 1 == 2True>>> 1 != 1 or 2 == 2True>>> 1 > 2 or 3 < 1False
Not 運(yùn)算符
不像前面的兩個(gè)運(yùn)算符,not 只評(píng)估其右邊的運(yùn)算結(jié)果并返回相反的結(jié)果。not True 返回 False, not False 變成 True。
>>> not 1 != 1True>>> not 1 < 7False
我們可以在 if 判斷里使用多個(gè)布爾邏輯運(yùn)算符來(lái)處理多個(gè)條件判斷。
運(yùn)算優(yōu)先級(jí)
運(yùn)算優(yōu)先次序是程序里比較重要的概念。
它是數(shù)學(xué)里運(yùn)算順序(比如:乘法優(yōu)先于加法等)的體現(xiàn)和擴(kuò)展。Python 的運(yùn)算優(yōu)先級(jí)包括其他的一些運(yùn)算符,如布爾邏輯運(yùn)算符。
下面代碼顯示 -- 運(yùn)算符優(yōu)先級(jí)高于 or 運(yùn)算符。
>>> True or False ==False
True>>> (True or False) ==False
False>>> True or (False ==False)
True
Python 的運(yùn)算順序與普通數(shù)學(xué)的順序相同:首先是括號(hào),然后是指數(shù),接著是乘除法,最后加減法。
下面的表格表示Python里有高到低的運(yùn)算優(yōu)先級(jí)。
下面代碼會(huì)輸出什么?
x = 2y= 4
if not 1 + 3 == y or x == 2 and 3 == 4:print("Yes")elif x
運(yùn)行結(jié)果:
>>>No>>>
while 循環(huán)
我們看到if 語(yǔ)句只運(yùn)行一次當(dāng)它的條件判斷為 True,當(dāng)條件判斷為 False 不會(huì)運(yùn)行其塊里的代碼。
如果我們需要重復(fù)執(zhí)行一個(gè)動(dòng)作那么就需要 while 循環(huán)語(yǔ)句。當(dāng)其條件判斷為 True 它重復(fù)執(zhí)行其代碼塊,而當(dāng)條件判斷為 False 時(shí)它不再執(zhí)行其代碼塊,while 語(yǔ)句塊下一部分的代碼將被執(zhí)行。
下面代碼實(shí)例表明 x 變量從1加到5后退出代碼塊后輸出"Finished!"。
x = 1
while x <= 5:print(x)
x+= 1
print("Finished!")
運(yùn)行結(jié)果:
>>>
1
2
3
4
5Finished!>>>
代碼塊在 while 語(yǔ)句里重復(fù)執(zhí)行,在計(jì)算機(jī)里我們叫它循環(huán)。
在 while 循環(huán)里,如果條件判斷永遠(yuǎn)為 True 它將永遠(yuǎn)不會(huì)停止,我們稱(chēng)其為無(wú)限循環(huán)。
whileTrue:print("loop...")
上面代碼永不停息地打印出"loop..."。
遇到這種情況,我們可以使用Ctrl+C 快捷鍵來(lái)關(guān)閉這程序的運(yùn)行。(針對(duì)命令行)
break 語(yǔ)句
如果需要在代碼塊里跳出 while 循環(huán),可以使用 break 語(yǔ)句。當(dāng)在循環(huán)中遇到 break 語(yǔ)句,循環(huán)立即跳出 while 循環(huán)語(yǔ)句。
i =0whileTrue:print(i)
i+= 1
if i >= 5:print("Breaking")break
print("Finished!")
運(yùn)行結(jié)果:
>>>01
2
3
4Breaking
Finished!>>>
注意:在循環(huán)外面使用 break 語(yǔ)句將會(huì)導(dǎo)致錯(cuò)誤發(fā)生。
下面代碼打印變量3次
i = 5
whileTrue:print(i)
i-= 1
if i <= 2:break
運(yùn)行結(jié)果:
>>>
5
4
3
>>>
continue 語(yǔ)句
循環(huán)里面我們還可以使用 continue 語(yǔ)句。
不像 break 跳出整個(gè)循環(huán)并停止執(zhí)行循環(huán)代碼塊,continue 語(yǔ)句停止執(zhí)行循環(huán)代碼塊下面的部分并重新開(kāi)始執(zhí)行循環(huán)代碼塊。
i =0whileTrue:
i+= 1
if i == 2:print("Skipping 2")continue
if i == 6:print("Breaking")break
print(i)print("Finished")
運(yùn)行結(jié)果:
>>>
1Skipping2
3
4
5Breaking
Finished>>>
continue 語(yǔ)句的作用是停止當(dāng)前的循環(huán)并執(zhí)行下一個(gè)循環(huán)。
在循環(huán)外面使用 continue 語(yǔ)句將會(huì)導(dǎo)致錯(cuò)誤發(fā)生。
“小學(xué)課本上有一篇文章,叫小馬過(guò)河,小馬要過(guò)河,老馬說(shuō)河水非常淺,松鼠說(shuō)河水深不見(jiàn)底,小馬站在河前面進(jìn)退兩難,面對(duì)著即將要淌過(guò)四年的河,我突然覺(jué)得,如果你不得不過(guò)河,那么水深水淺,對(duì)你來(lái)說(shuō)還重要么”——路橋川 《一起同過(guò)窗》
原文地址:https://www.cnblogs.com/dustman/p/9972078.html
總結(jié)
以上是生活随笔為你收集整理的python三种基本控制结构_Python学习手册之控制结构(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: wxpython界面切换_Python图
- 下一篇: python小作品speak_pytho