Python邏輯運算


運算符用于執(zhí)行程序代碼運算烤送,會針對一個以上操作數(shù)項目來進行運算。例如:2+3,其操作數(shù)是2和3仇轻,而運算符則是“+”水由。在計算器語言中運算符大致可以分為5種類型:算術(shù)運算符扬绪、連接運算符竖独、關(guān)系運算符、賦值運算符和邏輯運算符挤牛。運算符也是計算機里比較好理解的人類語言之一莹痢,只要稍微懂點數(shù)學的,都能看懂算數(shù)運算符墓赴。在Python中常見的運算符有: +竞膳、-、诫硕、/坦辟、*/<、>章办、!=锉走、//、%藕届、&挪蹭、|、^休偶、~梁厉、>>、<<踏兜、<=词顾、>=只冻、==、not计技、and、or 山橄。在接下來的文章中再一一介紹這些運算符的具體事例垮媒。

python運算符基礎實例

# coding=utf-8
#兩個數(shù)字相加
sumNumber=1+2
print(sumNumber)      #輸出結(jié)果:3
 
#兩個字符串相加
sumString="Nice work"
print(sumString)      #輸出結(jié)果:Nice work
 
#兩個數(shù)字相減
subNumber=2-1
print(subNumber)      #輸出結(jié)果:1
 
#兩個數(shù)字相乘或者字符串重復
multiplicationNumber=2*3
print(multiplicationNumber)      #輸出結(jié)果:6
multiplicationString="hello"*2
print(multiplicationString)      #輸出結(jié)果:hellohello
#/---關(guān)于*號重復字符串之前的博客已經(jīng)介紹過了---/
 
#兩個數(shù)相除
divisionNumber=9/2
print(divisionNumber)      #輸出結(jié)果:4
divisionNumber=9.0/2
print(divisionNumber)      #輸出結(jié)果:4.5
divisionNumber=9/2.0
print(divisionNumber)      #輸出結(jié)果:4.5
#/---除數(shù)或被除數(shù)中有任意一個是小數(shù)的話,商也會保留小數(shù)航棱,反之取整---/
 
#求冪運算
powerNumber=2**3 #相當于2的3次冪睡雇,就是2*2*2 關(guān)于冪運算大家應該在數(shù)學里都很熟悉了
print powerNumber       #輸出結(jié)果:8
 
#小于符號,返回值是bool值
lessThan=1<2
print(lessThan)        #輸出結(jié)果:True
lessThan=1<1
print(lessThan)        #輸出結(jié)果:False
 
#大于符號饮醇,返回值是bool值
moreThan=2>1
print(moreThan)        #輸出結(jié)果:True
moreThan=2>2
print(moreThan)        #輸出結(jié)果:False
 
#不等于符號 返回值是Bool值
notEqual=1!=2
print(notEqual)        #輸出結(jié)果:True
notEqual=1!=1
print(notEqual)        #輸出結(jié)果:False
 
#除法運算// 返回商的整數(shù)部分它抱,拋棄余數(shù)
divisorNumber=10//3
print(divisorNumber)        #輸出結(jié)果:3
 
#除法運算% 返回商的余數(shù)部分,拋棄商
divisorNumber=10%3
print(divisorNumber)        #輸出結(jié)果:1
divisorNumber=10%1
print(divisorNumber)        #輸出結(jié)果:0 /--沒有余數(shù)則返回0--/
divisorNumberx=10//3         #divisorNumberx是商的整數(shù)部分
divisorNumbery=10%3         #divisorNumbery是余數(shù)
divisorNumberz=3*divisorNumberx+divisorNumbery    #divisorNumberz是除數(shù)乘以商的整數(shù)部分加上余數(shù)朴艰,得到的divisorNumberz的值就是被除數(shù)
print(divisorNumberz)        #輸出結(jié)果:10
 
#按位與運算&观蓄, 按位與是指一個數(shù)字轉(zhuǎn)化為二進制,然后這些二進制的數(shù)按位來進行與運算
operationNumber=7&18
print operationNumber        #輸出結(jié)果:2
'''
這個有點繞祠墅,稍微多說下侮穿,如果對二進制不是太熟的朋友,可以打開電腦自帶的計算器毁嗦,按住win+q,輸入"calculator"亲茅。
然后在打開的計算器設置成程序員模式, 就是View(查看)->>programmer(程序員).
然后我們將7轉(zhuǎn)為二進制:111,自動補全8位:00000111狗准,然后將18轉(zhuǎn)為二進制補全8位后得到:00010010
最后將   00000111
跟       00010010 按位進行與運算克锣,
/-
對與運算不熟的朋友可以看看百度百科的介紹,還是很詳細的腔长。
http://baike.baidu.com/link?url=lfGJREBvGCY5j7VdF2OO9n2mtIbSyNUD7lZyyY74QIetguL5lXIQUxY38Yr-p4z4WdUvHUKGjw9CDfagiun2Ea
-/
得到結(jié)果:00000010
我們都知道10二進制→十進制=2袭祟,所以7跟18的按位與的結(jié)果是二進制10(十進制2)
'''
 
#按位或運算|, 按位或是指一個數(shù)字轉(zhuǎn)化為二進制饼酿,然后這些二進制的數(shù)按位來進行或運算
operationNumber=7|18
print operationNumber        #輸出結(jié)果:23   #結(jié)題思路和按位與運算的一樣榕酒,可以參考按位與運算
 
#按位異或
operationNumber=7^18
print operationNumber        #輸出結(jié)果:21   #結(jié)題思路和按位與運算的一樣,可以參考按位與運算
 
#按位翻轉(zhuǎn) ~   按位翻轉(zhuǎn)公式: ~x= - (x+1)
operationNumber=~12  #~12=- (12+1) = -13
print operationNumber        #輸出結(jié)果:-13   #結(jié)題思路和按位與運算的一樣故俐,可以參考按位與運算
 
#左移<<
'''
比如18左移就是將他的二進制形式00100100左移想鹰,得到00100100(36)。
左移規(guī)律:左移一個單位相當于乘2药版,左移兩個單位相當于乘以4辑舷,左移三個單位相當于乘以8,
即:      左移n個單位相當于乘以2的n次冪
'''
operationNumber=12<<1
print operationNumber        #輸出結(jié)果:24
operationNumber=3<<3
print operationNumber        #輸出結(jié)果:24
 
#右移>>
'''
理解左移以后槽片,右移就很好理解了何缓。
右移是左移的逆運算肢础,將對應的二進制數(shù)向右移動。
右移規(guī)律:右移一個單位相當于除以2碌廓,右移兩個單位相當于除以4传轰,右移三個單位相當于除以8,
即:      右移n個單位相當于除以2的n次冪
'''
operationNumber=12>>1
print operationNumber        #輸出結(jié)果:6
operationNumber=12>>2
print operationNumber        #輸出結(jié)果:3
 
#小于等于<= 比較運算谷婆,小于或等于返回一個bool值
operationNumber=3<=3
print operationNumber        #輸出結(jié)果:True
operationNumber=3<=2
print operationNumber        #輸出結(jié)果:False
 
#大于等于>= 比較運算慨蛙,大于或等于返回一個bool值
operationNumber=2>=3
print operationNumber        #輸出結(jié)果:False
operationNumber=3>=2
print operationNumber        #輸出結(jié)果:True
 
#比較兩個對象是否相等==
operationNumber=3==2
print operationNumber        #輸出結(jié)果:False
operationString="hi"=="hi"
print operationString        #輸出結(jié)果:True
 
#邏輯非 not
operationx=True
operationy=not operationx
print operationy        #輸出結(jié)果:False
operationz=False
print not operationz        #輸出結(jié)果:True
 
#邏輯與 and
'''
True and True = True
True and False = False
False and True = False
False and False = False
'''
print True and True        #輸出結(jié)果:True
 
#邏輯或 or
'''
True or True = True
True or False = True
False or True = True
False or False = False
'''
print False or False        #輸出結(jié)果:False

python運算符優(yōu)先級

python運算符優(yōu)先級排行榜

在一個表達式中可能包含多個有不同運算符連接起來的、具有不同數(shù)據(jù)類型的數(shù)據(jù)對象纪挎;由于表達式有多種運算期贫,不同的運算順序可能得出不同結(jié)果甚至出現(xiàn)錯誤運算錯誤,因為當表達式中含多種運算時异袄,必須按一定順序進行結(jié)合通砍,才能保證運算的合理性和結(jié)果的正確性、唯一性烤蜕。

優(yōu)先級從上到下依次遞減封孙,最上面具有最高的優(yōu)先級,逗號操作符具有最低的優(yōu)先級玖绿。表達式的結(jié)合次序取決于表達式中各種運算符的優(yōu)先級敛瓷。優(yōu)先級高的運算符先結(jié)合,優(yōu)先級低的運算符后結(jié)合斑匪,同一行中的運算符的優(yōu)先級相同呐籽。

# coding=utf-8
#優(yōu)先級的簡單實例
priorityNumber=2+1*4
print priorityNumber      #輸出結(jié)果:6

#優(yōu)先級使用實例
#以下優(yōu)先級排名從高到低,在同一運算中蚀瘸,先執(zhí)行優(yōu)先級高的再執(zhí)行低的狡蝶,以此類推。

#Top 1:函數(shù)調(diào)用贮勃、尋址贪惹、下標

#Top 2:冪運算**
priorityNumber=2*2**3
print priorityNumber      #輸出結(jié)果:16

#Top 3:翻轉(zhuǎn)運算~

#Top 4:正負號
print 1+2*-3      #輸出結(jié)果:-5

#Top 5:*、/寂嘉、%
print 2+1*2/5      #輸出結(jié)果:2

#Top 6:+奏瞬、-
print 3<<2+1      #輸出結(jié)果:24

#Top 7:<<、>>

#Top 8:按位&泉孩、^硼端、|

#Top 9:比較運算符
priority=2*3+2<=2+1*7
print priority      #輸出結(jié)果:True

#Top 10:邏輯的not and or

#Top 11:lambda表達式

python運算符優(yōu)先級使用規(guī)律

#python優(yōu)先級使用規(guī)律
#1、一般情況下是左結(jié)合的
#ps:在沒有更高優(yōu)先級運算符寓搬,即只有同級運算符時時從左到右結(jié)合
print 1+2+3*5+5      #輸出結(jié)果:23

#2珍昨、出現(xiàn)賦值的時候一般是右結(jié)合
#ps:在有賦值運算符時,是右結(jié)合,即先算出1+2的值以后再賦值給priority
priority=1+2
print priority       #輸出結(jié)果:23

python運算符優(yōu)先級大招

大家可能會覺得Python運算符的優(yōu)先級不容易記憶镣典,而且有時候還容易混淆兔毙。在實際運用中根據(jù)業(yè)務邏輯可能我們知道要先做什么再做什么,但是卻忘記Python運算符的優(yōu)先級了兄春,該怎么辦澎剥?這里教大家一個殺手锏,絕對百試不爽赶舆。

#python運算符優(yōu)先級大招
'''比如說有這個需求:
        去商店買水肴裙,買3瓶水,每瓶5塊涌乳,再買一個綠箭(假設綠箭3塊),總共多少錢甜癞?
   這個簡單的應用非常明顯夕晓,需要先用乘法再用加法,如果這里你忘記了乘法和加法的優(yōu)先級悠咱,可以這樣:
'''
print (3*5)+3       #輸出結(jié)果:18

#ps: 這只是一個簡單的例子蒸辆,只是為了告訴大家實際應用中實在不行咱就放大招。有備無患析既。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末躬贡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子眼坏,更是在濱河造成了極大的恐慌拂玻,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宰译,死亡現(xiàn)場離奇詭異檐蚜,居然都是意外死亡,警方通過查閱死者的電腦和手機沿侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進店門闯第,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缀拭,你說我怎么就攤上這事咳短。” “怎么了蛛淋?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵咙好,是天一觀的道長。 經(jīng)常有香客問我铣鹏,道長敷扫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮葵第,結(jié)果婚禮上绘迁,老公的妹妹穿的比我還像新娘。我一直安慰自己卒密,他們只是感情好缀台,可當我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哮奇,像睡著了一般膛腐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鼎俘,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天哲身,我揣著相機與錄音,去河邊找鬼贸伐。 笑死勘天,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的捉邢。 我是一名探鬼主播脯丝,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼伏伐!你這毒婦竟也來了宠进?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤藐翎,失蹤者是張志新(化名)和其女友劉穎材蹬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吝镣,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡赚导,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赤惊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吼旧。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖未舟,靈堂內(nèi)的尸體忽然破棺而出圈暗,到底是詐尸還是另有隱情,我是刑警寧澤裕膀,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布员串,位于F島的核電站,受9級特大地震影響昼扛,放射性物質(zhì)發(fā)生泄漏寸齐。R本人自食惡果不足惜欲诺,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渺鹦。 院中可真熱鬧扰法,春花似錦、人聲如沸毅厚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吸耿。三九已至祠锣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咽安,已是汗流浹背伴网。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妆棒,地道東北人是偷。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像募逞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子馋评,可洞房花燭夜當晚...
    茶點故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內(nèi)容