摘要:例如這顯然是不對(duì)的,所以式子的值是是變量名邏輯操作如果是則結(jié)果為,反之同理同時(shí)為時(shí),結(jié)果為至少一個(gè)為,結(jié)果為在布爾值之間進(jìn)行運(yùn)算,之前說(shuō)數(shù)據(jù)類(lèi)型的時(shí)候也說(shuō)過(guò)。我們說(shuō)了例如這樣的比較的式子的值是布爾值,也就是說(shuō)可以將式子進(jìn)行邏輯運(yùn)算。
本文利用的是Python 3.x版本,建議學(xué)習(xí)3.x版本Python中的分支判斷、循環(huán) 1. 分支條件判斷 1.1 比較操作
以下是數(shù)之間常見(jiàn)的比較操作,例如5>3就是數(shù)學(xué)意義上的比較,5是大于3的,所以這個(gè)式子的值是True。如何比較,根據(jù)兩個(gè)數(shù)之間的符號(hào)判斷即可。這里要注意的是!=是不相等的意思,==是相等的意思。例如5==3這顯然是不對(duì)的,所以式子的值是False
# i j是變量名 i > j i >= j i < j i <= j i == j i != j1.2 邏輯操作
not a #如果a是True則 結(jié)果為False,反之同理 a and b #同時(shí)為T(mén)rue時(shí),結(jié)果為T(mén)rue a or b #至少一個(gè)為T(mén)rue,結(jié)果為T(mén)rue
在布爾值之間進(jìn)行運(yùn)算,之前說(shuō)數(shù)據(jù)類(lèi)型的時(shí)候也說(shuō)過(guò)。我們說(shuō)了例如5>3這樣的比較的式子的值是布爾值,也就是說(shuō)可以將式子進(jìn)行邏輯運(yùn)算。例如
5>3 and 5==3 #相當(dāng)于True and False結(jié)果是False
下面是測(cè)試結(jié)果
1.3 控制流,分支計(jì)算機(jī)可以進(jìn)行自動(dòng)化操作,因?yàn)榭梢园凑瘴覀兘o定的條件判斷執(zhí)行,所以分支判斷是必不可少的。簡(jiǎn)單來(lái)說(shuō)就是,如果條件A成立,那么做些什么,不成立做些什么,例如如果今天下雨,我就不出門(mén)。
最簡(jiǎn)單的條件判斷語(yǔ)句如下,有幾個(gè)地方容易出錯(cuò),條件后要用冒號(hào),if條件塊里的代碼要進(jìn)行縮進(jìn),4個(gè)空格,如果了解其他語(yǔ)言的同學(xué)應(yīng)該知道,很多語(yǔ)言的代碼塊是靠大括號(hào){}來(lái)標(biāo)識(shí)的。為什么要有代碼塊?代碼塊內(nèi)的代碼的層次是一樣的。舉個(gè)例子,如果不區(qū)分代碼塊,那么如果if判斷條件成立后,代碼究竟要執(zhí)行到哪里?所以當(dāng)條件成立時(shí),執(zhí)行這個(gè)if后的代碼塊內(nèi)的內(nèi)容。一定要注意縮進(jìn),不然在py中會(huì)出錯(cuò)的。當(dāng)然現(xiàn)在的代碼編輯器多數(shù)都很智能,在寫(xiě)完冒號(hào)后敲擊回車(chē),就可以自動(dòng)縮進(jìn)4個(gè)空格,我用的VScode就是這樣的,很方便。
#如果<條件>為T(mén)rue,則執(zhí)行if塊 #里的操作,注意縮進(jìn)和冒號(hào)!! if <條件>: 操作1 操作2 …… #實(shí)例 x = 6 if x>3 and x<8: print("hello") #結(jié)果會(huì)打印出hello
接下來(lái)稍微復(fù)雜,就是if else,意思是如果if判斷的條件成立(結(jié)果為True),則執(zhí)行if代碼塊內(nèi)的代碼,如果不成立則執(zhí)行else代碼塊內(nèi)的代碼。簡(jiǎn)單來(lái)說(shuō)就是如果條件成立,則執(zhí)行if代碼塊內(nèi)的代碼,否則執(zhí)行else內(nèi)的代碼。else和if一樣也要加冒號(hào)以及代碼塊的縮進(jìn)。
#先執(zhí)行if的<條件>查看是否為T(mén)rue, #如果為T(mén)rue則進(jìn)入if塊,不會(huì)進(jìn)入 #else,如果為False則進(jìn)入else,不進(jìn)入if if <條件>: 操作1 操作2 …… else: 操作1 操作2 …… #實(shí)例 x = 6 if x > 7: print(1) else: print(2) #結(jié)果會(huì)打印出2
接下來(lái)是多條件判斷,以上的判斷都是單條件,非此即彼的判斷。多條件判斷可以用多個(gè)條件來(lái)判斷,先查看條件1是否成立,如果成立則進(jìn)入代碼塊執(zhí)行,如果條件1不成立,繼續(xù)看條件2是否成立……多條件用elif也要加冒號(hào)以及代碼塊縮進(jìn)。
# 多重條件,先看是否能進(jìn)if, # 如果沒(méi)進(jìn)則繼續(xù)判斷是否能進(jìn)elif…… # 如果都沒(méi)進(jìn),且有else的話(huà),進(jìn)入else if <條件1>: 操作1 操作2 …… elif<條件2>:# elif可以有多個(gè) 操作1 操作2 …… else:# else可以沒(méi)有 表達(dá)式 表達(dá)式 …… #實(shí)例 x = 6 if x > 10: print(1) elif x > 7 and x < 9: print(2) elif x > 4 and x < 7: print(3) else: print(4) #結(jié)果會(huì)打印出3
這里再說(shuō)一下多重條件和多個(gè)if的區(qū)別,在多重條件中,一旦某一條件成立,那么之后的代碼就不會(huì)執(zhí)行了,就不會(huì)再去判斷之后的條件了。
if <條件1>:#每個(gè)條件都要判斷 操作 if <條件2>:#每個(gè)條件都要判斷 操作 if <條件3>:#每個(gè)條件都要判斷 操作 if <條件1>:#如果條件1成立,不再判斷后面的條件 操作 elif <條件2>: 操作 elif <條件3>: 操作
嵌套條件判斷,不建議過(guò)深的嵌套
if <條件1>: if <條件2>: 操作 else: 操作 else: 操作
練習(xí)一下,要求用戶(hù)從控制臺(tái)輸入兩個(gè)float數(shù)(x,y),要給出提示(例如:請(qǐng)輸入數(shù)x),判斷x y的大小,如果相等則輸出相等。如果x大則輸出x大,如果x小則輸出x小。如果x大于y時(shí),如果y不等于0,則輸出x/y的數(shù)值。
x = float(input("請(qǐng)輸入數(shù)x:")) y = float(input("請(qǐng)輸入數(shù)y:")) if abs(x-y)<1.0e-9: print("x,y相等") elif x > y: print("x大于y") if abs(y)>1.0e-9: print("x/y=",x/y) else: print("x小于y")
解釋一下abs(x-y)<1.0e-9,abs是求絕對(duì)值函數(shù),當(dāng)x和y的差值小于1^(-9)時(shí),就認(rèn)為x和y是相等的,這是因?yàn)楦↑c(diǎn)數(shù)的表示是有誤差的,用==來(lái)比較很危險(xiǎn),所以只要在我們需要的精度內(nèi)相等即可。
2. 循環(huán) 2.1 while loop當(dāng)我們需要執(zhí)行大量相似的操作時(shí),這時(shí)循環(huán)就派上用場(chǎng)了,首先說(shuō)一下while循環(huán)。
while <條件>:#注意冒號(hào)和4個(gè)空格的縮進(jìn) 操作 ……
如果<條件>為True,則執(zhí)行while塊里的所有操作,然后繼續(xù)檢查<條件>是否為True,一直重復(fù)塊里的表達(dá)式,直到<條件>為False,如下例子
n = 0 while n < 5: print(n) n = n + 12.2 for loop
for循環(huán),相對(duì)于while更加確定執(zhí)行的次數(shù),while根據(jù)條件來(lái)確定是否執(zhí)行,而for通常是給定了執(zhí)行的次數(shù)。
for <變量> in range(<一些數(shù)字>): <表達(dá)式>#注意冒號(hào)和4個(gè)空格的縮進(jìn) …… #實(shí)例 for v in range(6): print(v) #結(jié)果會(huì)打印0-5 sum = 0 for i in range(101): sum = sum + i #求0-100的和
相當(dāng)于每次把值賦予給變量,然后在代碼塊內(nèi)部可以使用這個(gè)變量,
2.3 range(start,stop,step)默認(rèn)的參數(shù)是start=0,代表從哪個(gè)數(shù)開(kāi)始,step=1,代表步長(zhǎng),意味著每次增加多少,數(shù)的范圍是0~stop-1
mysum = 0 for i in range(7,10): mysum += i print(mysum) #求7 8 9的和
mysum = 0 for i in range(5,11,2): mysum += i print(mysum) #求5 7 9的和2.4 break
break表示立即退出循環(huán),跳過(guò)剩下在塊里的表達(dá)式,僅僅退出最里層的循環(huán)!簡(jiǎn)單來(lái)說(shuō)就是給一個(gè)條件,當(dāng)這個(gè)條件成立時(shí),退出循環(huán),經(jīng)常和if搭配使用。
mysum = 0 for i in range(5,11,2): mysum += i #當(dāng)mysum等于5的時(shí)候,退出循環(huán) if mysum == 5: break musum += 1 print(mysum)2.5 for和while的比較
for
知道迭代的次數(shù)
可以通過(guò)break提前結(jié)束循環(huán)
使用計(jì)數(shù)器,因?yàn)橛袀€(gè)變量可以幫助計(jì)數(shù)
可以用while循環(huán)來(lái)重寫(xiě)for循環(huán)
while
迭代次數(shù)無(wú)限制
可以通過(guò)break提前結(jié)束循環(huán)
可以使用計(jì)數(shù)器,但是得提前初始化,并且每次得更新
可能沒(méi)法用for循環(huán)重寫(xiě)while
到此為止有了判斷、循環(huán)、輸入、輸出后,就可以寫(xiě)一些簡(jiǎn)單的程序了
如果覺(jué)得不錯(cuò),可以分享~,可以關(guān)注公眾號(hào)~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/43122.html
摘要:返回索引頁(yè)控制流分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)和總結(jié)練習(xí)參考控制流上一張我們了解了的基本語(yǔ)法和數(shù)據(jù)結(jié)構(gòu)。和后必須加判斷表達(dá)式,一般表達(dá)式返回值為布爾型,當(dāng)非布爾型時(shí),表示該值是否存在。語(yǔ)句以英文冒號(hào)結(jié)尾邏輯代碼塊以個(gè)空格或分隔。 < 返回索引頁(yè) 控制流 分支結(jié)構(gòu) if/elif/else 循環(huán)結(jié)構(gòu) for while break 和 continue pass 總結(jié) 練習(xí) 參考...
摘要:的判斷與循環(huán)今天主要介紹一下中的判斷與循環(huán)控制。本來(lái)之前寫(xiě)的標(biāo)題名字是的流程控制,但是想了想,流程控制又不僅限于條件判斷和循環(huán)的控制。根據(jù)各分支的條件判斷來(lái)決定對(duì)應(yīng)的執(zhí)行操作。例如當(dāng)時(shí)退出循環(huán)四關(guān)鍵字,其作用是提前退出當(dāng)層循環(huán)。 Python的判斷與循環(huán) 今天主要介紹一下Python中的if判斷與循環(huán)控制。本來(lái)之前寫(xiě)的標(biāo)題名字是Python的流程控制,但是想了想,流程控制又不僅限于條件...
摘要:系列文章工匠善用變量改善代碼質(zhì)量序言編寫(xiě)條件分支代碼是編碼過(guò)程中不可或缺的一部分。而進(jìn)行條件分支判斷時(shí)用到的也是這個(gè)值重點(diǎn)來(lái)了,雖然所有用戶(hù)類(lèi)實(shí)例的布爾值都是真。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 本文由鵝廠(chǎng)優(yōu)文發(fā)表于云+社區(qū)專(zhuān)欄 作者:朱雷 | 騰訊IEG高級(jí)工程師 『Python 工匠』是什么? 我一直覺(jué)得編程某種意義是一門(mén)『手藝』,因?yàn)閮?yōu)雅而高效的代碼...
摘要:會(huì)認(rèn)為子類(lèi)是一種父類(lèi)類(lèi)型。一般記為它是編程語(yǔ)言中表示文本的數(shù)據(jù)類(lèi)型。運(yùn)算是與運(yùn)算,只有所有都為,運(yùn)算結(jié)果才是布爾值經(jīng)常用在條件判斷中列表列表是中使用最頻繁的數(shù)據(jù)類(lèi)型。是中內(nèi)置的一種數(shù)據(jù)類(lèi)型,可以隨時(shí)添加和刪除其中的元素。 了解過(guò)了Python的發(fā)展歷史,現(xiàn)在開(kāi)始我們的Python基礎(chǔ)吧,如果你有學(xué)習(xí)過(guò)其他的編程語(yǔ)言,你可以跳過(guò)這一篇 PyCharm使用圖解 開(kāi)發(fā)python的工具你可以...
摘要:普通可迭代對(duì)象只有魔術(shù)方法,而不像迭代器一樣擁有魔術(shù)方法,這意味著它無(wú)法實(shí)現(xiàn)自遍歷過(guò)程,同時(shí)在經(jīng)過(guò)循環(huán)的它遍歷后,也不會(huì)破壞原有的結(jié)構(gòu)。這兩個(gè)是我創(chuàng)造的概念,詳見(jiàn)進(jìn)階迭代器與迭代器切片。 showImg(https://segmentfault.com/img/remote/1460000019621809); 本文原創(chuàng)并首發(fā)于公眾號(hào)【Python貓】,未經(jīng)授權(quán),請(qǐng)勿轉(zhuǎn)載。 原文地址:...
閱讀 1949·2021-09-28 09:36
閱讀 2516·2021-09-08 09:35
閱讀 3119·2019-08-30 15:53
閱讀 1607·2019-08-30 14:08
閱讀 725·2019-08-29 18:40
閱讀 2914·2019-08-29 13:57
閱讀 2756·2019-08-29 13:55
閱讀 744·2019-08-26 13:45