循環(huán)與判斷
邏輯控制與循環(huán)
邏輯判斷 ——True & False
邏輯判斷是編程語(yǔ)言最有意思的地方,如果要實(shí)現(xiàn)一個(gè)復(fù)雜的功能或程序,邏輯 判斷必不可少。if-else結(jié)構(gòu)就是常見(jiàn)的邏輯控制的手段,當(dāng)你寫(xiě)出這樣的語(yǔ)句的時(shí) 候,就意味著你告訴了計(jì)算機(jī)什么時(shí)候該怎么做,或者什么是不用做的。學(xué)完了前面 幾章內(nèi)容之后,現(xiàn)在的你也許早已對(duì)邏輯控制摩拳擦掌、躍躍欲試,但是在這之前我 們需要先了解邏輯判斷的最基本準(zhǔn)則——布爾類型(Boolean Type)。
在開(kāi)始前,想強(qiáng)調(diào)一點(diǎn),如果你懷疑自己的邏輯能力,進(jìn)而對(duì)本章的內(nèi)容感到畏 懼,請(qǐng)不要擔(dān)心,我可以負(fù)責(zé)任地說(shuō),沒(méi)有人是“沒(méi)有邏輯的”,正如我們可以在極其 復(fù)雜的現(xiàn)實(shí)世界中采取各種行動(dòng)一樣,你所需要的只不過(guò)是一些判斷的知識(shí)和技巧而 已。
布爾類型(Boolean)的數(shù)據(jù)只有兩種,True和False (需要注意的是首字母大 寫(xiě))。人類以真?zhèn)蝸?lái)判斷事實(shí),而在計(jì)算機(jī)世界中真?zhèn)螌?duì)應(yīng)著的則是1和0。
接下來(lái)我們打開(kāi)命令行/終端進(jìn)入Python環(huán)境,敲入這些代碼,或者直接在PyCharm中選擇Python Console,這樣會(huì)更方便展示結(jié)果。True & False這一小節(jié) 的內(nèi)容我們都在命令行/終端環(huán)境里輸入代碼。
我們每輸入一行代碼就會(huì)立即得到結(jié)果,這幾行代碼的表達(dá)方式不同,但是返回 結(jié)果卻只有True和False這兩種布爾類型,因此我們稱但凡能夠產(chǎn)生一個(gè)布爾值的 表達(dá)式為布爾表達(dá)式(Boolean Expressions)。
1 > 2 |
# |
False |
1 < 2 <3 |
# |
True |
42 != '42' |
# |
True |
'Name' == 'name' |
# |
False |
'M' in 'Magic' |
# |
True |
number = 12 |
||
number is 12 |
# |
True |
可以看到,上面這些能夠產(chǎn)生布爾值的方法或者公式不盡相同,那么我們來(lái)一 一講解這些運(yùn)算符號(hào)的意義和用法。
比較運(yùn)算(Comparison)
對(duì)于比較運(yùn)算符,顧名思義,如果比較式成立那么則返回True,不成立則返回False。
成員運(yùn)算符與身份運(yùn)算符(Membership & Identify Operators)
成員運(yùn)算符和身份運(yùn)算符的關(guān)鍵詞是in與is。把in放在兩個(gè)對(duì)象中間的含義 是,測(cè)試前者是否存在于in后面的集合中。說(shuō)到集合,我們先在這里介紹一個(gè)簡(jiǎn)單易 懂的集合類型一列表(List)。
字符串、浮點(diǎn)、整數(shù)、布爾類型、變量甚至是另一個(gè)列表都可以儲(chǔ)存在列表中, 列表是非常實(shí)用的數(shù)據(jù)結(jié)構(gòu),在后面會(huì)花更多篇幅來(lái)講解列表的用法,這里先簡(jiǎn)單了 解一下。
布爾運(yùn)算符(Boolean Operators)
and、or用于布爾值的之間的運(yùn)算,具體規(guī)則如下:
條件控制
01
條件控制其實(shí)就是
if...else的使用
先來(lái)看一下條件控制的基本結(jié)構(gòu):
用一句話概括if...else結(jié)構(gòu)的作用:如果…條件是成立的,就做....;反之,就做…
所謂條件(condition)指的是成立的條件,即是返回值為True的布爾表達(dá)式。
一般情況下,設(shè)計(jì)程序的時(shí)候需要考慮到邏輯的完備性,并對(duì)用戶可能會(huì)產(chǎn)生困 擾的情況進(jìn)行預(yù)防性設(shè)計(jì),這時(shí)候就會(huì)有多條件判斷。
多條件判斷同樣很簡(jiǎn)單,只需在if和else之間增加上elif,用法和if是一致的。 而且條件的判斷也是依次進(jìn)行的,首先看條件是否成立,如果成立那么就運(yùn)行下面的 代碼,如果不成立就接著順次地看下面的條件是否成立,如果都不成立則運(yùn)行else對(duì) 應(yīng)的語(yǔ)句。
02
循環(huán)(Loop)
for循環(huán)
我們先來(lái)看一個(gè)例子,輸入代碼:
這兩行代碼展示的是:使用for循環(huán)打印出“hell。world”這段字符串中的每一個(gè) 字符。for循環(huán)作為編程語(yǔ)言中最強(qiáng)力的特性之一,能夠幫助我們做很多重復(fù)性的事 情,比如批量命名、批量操作等等。
把for循環(huán)所做的事情概括成一句話就是:于…其中的每一個(gè)元素,做…事情。
• for是關(guān)鍵詞,而后面緊接著的是一個(gè)可以容納“每一個(gè)元素”的變量名稱,至于變 量起什么名字自己定,但切記不要和關(guān)鍵詞重名。
•在關(guān)鍵詞in后面所對(duì)應(yīng)的一定是具有“可迭代的”(iterable)或者說(shuō)是像列表那 樣的集合形態(tài)的對(duì)象,即可以連續(xù)地提供其中的每一個(gè)元素的對(duì)象。
嵌套循環(huán)
編程中還有一種常見(jiàn)的循環(huán),被稱之為嵌套循環(huán)(Nested Loop),其實(shí)這種 循環(huán)并不復(fù)雜而且還非常實(shí)用。我們都學(xué)過(guò)乘法口訣表,又稱“九九表”,接下來(lái)我 們就用嵌套循環(huán)實(shí)現(xiàn)它:
for i in range(1,10): for j in range(1,10):print('{} X {} ={}'.format(i,j,i j))
正如代碼所示,這就是嵌套循環(huán)。通過(guò)觀察,我們不難發(fā)現(xiàn)這個(gè)嵌套循環(huán)的原 理:最外層的循環(huán)依次將數(shù)值1?9存儲(chǔ)到變量i中,變量i每取一次值,內(nèi)層循環(huán)就 要依次將1?9中存儲(chǔ)在變量j中,最后展示當(dāng)前的i、j與i*j的結(jié)果。
while循環(huán)
Python中有兩種循環(huán),第一種for循環(huán)我們已經(jīng)介紹過(guò)了,第二種則是while循 環(huán)。它們的相同點(diǎn)在于都能循環(huán)做一件重復(fù)的事情,不同點(diǎn)在于for循環(huán)會(huì)在可迭代 的序列被窮盡的時(shí)候停止,while則是在條件不成立的時(shí)候停止,因此while的作用概 括成一句話就是:只要…條件成立,就一直做…。
寧夏一沐智云網(wǎng)絡(luò)科技有限公司
長(zhǎng)按識(shí)別關(guān)注
掃描二維碼
寧夏一沐智云