葉鵬 沈曉恬
“基本的先后順序是從左往右,先計(jì)算括號(hào)中的部分,再計(jì)算不在括號(hào)中的部分,其中優(yōu)先級(jí)高的先計(jì)算。”菩提老祖總結(jié)道,“跟你三百多歲開(kāi)始學(xué)算術(shù)的時(shí)候,我告訴你的一樣?!?/p>
“……”猴子無(wú)語(yǔ)。
“對(duì)各種類(lèi)型的變量,都有一些基本運(yùn)算符,比如最常見(jiàn)的數(shù)字類(lèi)型,Python中有一套運(yùn)算符來(lái)實(shí)現(xiàn)基本的加減乘除操作。這些基本操作就像武術(shù)中的基本招式一樣,如直拳、擺拳、鞭腿、正踹、膝撞、肘擊等等?!?h3>字符串運(yùn)算符 (假設(shè)a='Hello',b='Python')
“有趣有趣,和我三百多歲剛學(xué)算術(shù)時(shí)的規(guī)矩一樣呢!”悟空插嘴,“師父,那字符串有運(yùn)算符嗎?總不能兩個(gè)字符串相加吧?”
“哈哈,自然也是有的!”菩提老祖笑著回答。
“字符串和數(shù)字類(lèi)型的變量,都可以比較大小,所以還有比較運(yùn)算符?!?/p>
(說(shuō)明:所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價(jià)。注意這些變量名的大寫(xiě))
“切記,使用比較運(yùn)算符時(shí),比較的雙方都得是同一類(lèi)型!”菩提老祖補(bǔ)充道。
“這俺自然曉得,不是一個(gè)類(lèi)型的東西,那還比個(gè)啥?”悟空連連點(diǎn)頭。
邏輯運(yùn)算符 (假設(shè)a=5,b=2)
菩提老祖接著說(shuō)道:“同樣,還有一種邏輯運(yùn)算符,可以對(duì)變量進(jìn)行邏輯運(yùn)算! ”
“邏輯運(yùn)算我知道,就是與或非嘛,哈哈!”悟空大笑。
與運(yùn)算中,進(jìn)行運(yùn)算的兩個(gè)變量都為真時(shí),結(jié)果才為真;否則結(jié)果為假。
或運(yùn)算中,進(jìn)行運(yùn)算的兩個(gè)變量都為假時(shí),結(jié)果才為假;否則結(jié)果為真。
非運(yùn)算中,進(jìn)行運(yùn)算的變量為真時(shí),結(jié)果為假;否則結(jié)果為真。
悟空聽(tīng)了菩提老祖的講述,撓著腦袋問(wèn)道:“這么說(shuō)來(lái),邏輯運(yùn)算符也能被用于數(shù)字型和字符串嗎?”
菩提老祖贊許地看了眼猴子,點(diǎn)點(diǎn)頭。
“在Python中,數(shù)字0或者空字符串在進(jìn)行邏輯運(yùn)算時(shí),會(huì)被認(rèn)為等價(jià)于False;而非0的數(shù)字或者非空字符串,會(huì)被認(rèn)為是True。切記,這是Python的特別招式,與其他的編程語(yǔ)言可不太一樣?!?/p>
“明白!”猴子聽(tīng)得秘辛,喜不自勝。
“其實(shí),還有一種非常常用的運(yùn)算符,稱(chēng)為賦值運(yùn)算符,它的作用就是把一個(gè)值賦給一個(gè)變量?!逼刑崂献胬^續(xù)說(shuō)道。
“哦,就是通過(guò)等號(hào)來(lái)賦值嘛,這個(gè)簡(jiǎn)單,俺老孫知道了!”
“真是性急的猴子,事情沒(méi)你想得那么簡(jiǎn)單。來(lái)仔細(xì)看看!”菩提老祖笑罵道。
悟空恍然大悟:“原來(lái)是這樣,相當(dāng)于在賦值前先做一次計(jì)算。師父你說(shuō)發(fā)明Python的人是不是故意讓那些沒(méi)學(xué)過(guò)的人看不懂呀!嘿嘿!”
“你這猴頭!”菩提老祖作勢(shì)要打。
悟空連忙轉(zhuǎn)移話題:“師父,您老人家既然講了那么多運(yùn)算符,那么在程序中,誰(shuí)先誰(shuí)后呢?要是沒(méi)有先后,豈不是亂套了?”悟空將心底的疑問(wèn)說(shuō)了出來(lái),菩提老祖的注意隨即被這個(gè)問(wèn)題轉(zhuǎn)開(kāi)。
下面表格中,越靠上的運(yùn)算符類(lèi)型優(yōu)先級(jí)越高。
“基本的先后順序是從左往右,先計(jì)算括號(hào)中的部分,再計(jì)算不在括號(hào)中的部分,其中優(yōu)先級(jí)高的先計(jì)算。”菩提老祖總結(jié)道,“跟你三百多歲開(kāi)始學(xué)算術(shù)的時(shí)候,我告訴你的一樣。”
“……”猴子無(wú)語(yǔ)。