運算符用於執行程序代碼運算,會針對一個以上操做數項目來進行運算。例如:2+3,其操做數是2和3,而運算符則是「+」。在計算器語言中運算符大體能夠分爲5種類型:算術運算符、鏈接運算符、關係運算符、賦值運算符和邏輯運算符。運算符也是計算機裏比較好理解的人類語言之一,只要稍微懂點數學的,都能看懂算數運算符。在Python中常見的運算符有:+、-、*、/、**/<、>、!=、//、%、&、|、^、~、>>、<<、<=、>=、==、not、and、or。在接下來的博文中再一一介紹這些運算符的具體事例。html
python你不去認識它,可能沒什麼,一旦你認識了它,你就會愛上它python
代碼正文&講解:程序員
# coding=utf-8 #兩個數字相加 sumNumber=1+2 print(sumNumber) #輸出結果:3 #兩個字符串相加 sumString="Nice work" print(sumString) #輸出結果:Nice work #兩個數字相減 subNumber=2-1 print(subNumber) #輸出結果:1 #兩個數字相乘或者字符串重複 multiplicationNumber=2*3 print(multiplicationNumber) #輸出結果:6 multiplicationString="hello"*2 print(multiplicationString) #輸出結果:hellohello #/---關於*號重複字符串以前的博客已經介紹過了---/ #兩個數相除 divisionNumber=9/2 print(divisionNumber) #輸出結果:4 divisionNumber=9.0/2 print(divisionNumber) #輸出結果:4.5 divisionNumber=9/2.0 print(divisionNumber) #輸出結果:4.5 #/---除數或被除數中有任意一個是小數的話,商也會保留小數,反之取整---/ #求冪運算 powerNumber=2**3 #至關於2的3次冪,就是2*2*2 關於冪運算你們應該在數學裏都很熟悉了 print powerNumber #輸出結果:8 #小於符號,返回值是bool值 lessThan=1<2 print(lessThan) #輸出結果:True lessThan=1<1 print(lessThan) #輸出結果:False #大於符號,返回值是bool值 moreThan=2>1 print(moreThan) #輸出結果:True moreThan=2>2 print(moreThan) #輸出結果:False #不等於符號 返回值是Bool值 notEqual=1!=2 print(notEqual) #輸出結果:True notEqual=1!=1 print(notEqual) #輸出結果:False #除法運算// 返回商的整數部分,拋棄餘數 divisorNumber=10//3 print(divisorNumber) #輸出結果:3 #除法運算% 返回商的餘數部分,拋棄商 divisorNumber=10%3 print(divisorNumber) #輸出結果:1 divisorNumber=10%1 print(divisorNumber) #輸出結果:0 /--沒有餘數則返回0--/ divisorNumberx=10//3 #divisorNumberx是商的整數部分 divisorNumbery=10%3 #divisorNumbery是餘數 divisorNumberz=3*divisorNumberx+divisorNumbery #divisorNumberz是除數乘以商的整數部分加上餘數,獲得的divisorNumberz的值就是被除數 print(divisorNumberz) #輸出結果:10 #按位與運算&, 按位與是指一個數字轉化爲二進制,而後這些二進制的數按位來進行與運算 operationNumber=7&18 print operationNumber #輸出結果:2 ''' 這個有點繞,稍微多說下,若是對二進制不是太熟的朋友,能夠打開電腦自帶的計算器,按住win+q,輸入"calculator"。 而後在打開的計算器設置成程序員模式, 就是View(查看)->>programmer(程序員). 而後咱們將7轉爲二進制:111,自動補全8位:00000111,而後將18轉爲二進制補全8位後獲得:00010010 最後將 00000111 跟 00010010 按位進行與運算, /- 對與運算不熟的朋友能夠看看百度百科的介紹,仍是很詳細的。 http://baike.baidu.com/link?url=lfGJREBvGCY5j7VdF2OO9n2mtIbSyNUD7lZyyY74QIetguL5lXIQUxY38Yr-p4z4WdUvHUKGjw9CDfagiun2Ea -/ 獲得結果:00000010 咱們都知道10二進制→十進制=2,因此7跟18的按位與的結果是二進制10(十進制2) ''' #按位或運算|, 按位或是指一個數字轉化爲二進制,而後這些二進制的數按位來進行或運算 operationNumber=7|18 print operationNumber #輸出結果:23 #結題思路和按位與運算的同樣,能夠參考按位與運算 #按位異或 operationNumber=7^18 print operationNumber #輸出結果:21 #結題思路和按位與運算的同樣,能夠參考按位與運算 #按位翻轉 ~ 按位翻轉公式: ~x= - (x+1) operationNumber=~12 #~12=- (12+1) = -13 print operationNumber #輸出結果:-13 #結題思路和按位與運算的同樣,能夠參考按位與運算 #左移<< ''' 好比18左移就是將他的二進制形式00100100左移,獲得00100100(36)。 左移規律:左移一個單位至關於乘2,左移兩個單位至關於乘以4,左移三個單位至關於乘以8, 即: 左移n個單位至關於乘以2的n次冪 ''' operationNumber=12<<1 print operationNumber #輸出結果:24 operationNumber=3<<3 print operationNumber #輸出結果:24 #右移>> ''' 理解左移之後,右移就很好理解了。 右移是左移的逆運算,將對應的二進制數向右移動。 右移規律:右移一個單位至關於除以2,右移兩個單位至關於除以4,右移三個單位至關於除以8, 即: 右移n個單位至關於除以2的n次冪 ''' operationNumber=12>>1 print operationNumber #輸出結果:6 operationNumber=12>>2 print operationNumber #輸出結果:3 #小於等於<= 比較運算,小於或等於返回一個bool值 operationNumber=3<=3 print operationNumber #輸出結果:True operationNumber=3<=2 print operationNumber #輸出結果:False #大於等於>= 比較運算,大於或等於返回一個bool值 operationNumber=2>=3 print operationNumber #輸出結果:False operationNumber=3>=2 print operationNumber #輸出結果:True #比較兩個對象是否相等== operationNumber=3==2 print operationNumber #輸出結果:False operationString="hi"=="hi" print operationString #輸出結果:True #邏輯非 not operationx=True operationy=not operationx print operationy #輸出結果:False operationz=False print not operationz #輸出結果:True #邏輯與 and ''' True and True = True True and False = False False and True = False False and False = False ''' print True and True #輸出結果:True #邏輯或 or ''' True or True = True True or False = True False or True = True False or False = False ''' print False or False #輸出結果:False
這裏的這些運算可能按位運算會感受比較麻煩,不過沒有關係,你們用多了就熟練了。less
1.python運算符優先級排行榜: 函數
在一個表達式中可能包含多個有不一樣運算符鏈接起來的、具備不一樣數據類型的數據對象;因爲表達式有多種運算,不一樣的運算順序可能得出不一樣結果甚至出現錯誤運算錯誤,由於當表達式中含多種運算時,必須按必定順序進行結合,才能保證運算的合理性和結果的正確性、惟一性。post
優先級從上到下依次遞減,最上面具備最高的優先級,逗號操做符具備最低的優先級。表達式的結合次序取決於表達式中各類運算符的優先級。優先級高的運算符先結合,優先級低的運算符後結合,同一行中的運算符的優先級相同。url
代碼正文&講解:spa
# coding=utf-8 #優先級的簡單實例 priorityNumber=2+1*4 print priorityNumber #輸出結果:6 #優先級使用實例 #如下優先級排名從高到低,在同一運算中,先執行優先級高的再執行低的,以此類推。 #Top 1:函數調用、尋址、下標 #Top 2:冪運算** priorityNumber=2*2**3 print priorityNumber #輸出結果:16 #Top 3:翻轉運算~ #Top 4:正負號 print 1+2*-3 #輸出結果:-5 #Top 5:*、/、% print 2+1*2/5 #輸出結果:2 #Top 6:+、- print 3<<2+1 #輸出結果:24 #Top 7:<<、>> #Top 8:按位&、^、| #Top 9:比較運算符 priority=2*3+2<=2+1*7 print priority #輸出結果:True #Top 10:邏輯的not and or #Top 11:lambda表達式
2.python運算符優先級使用規律: code
代碼正文&講解:htm
#python優先級使用規律 #一、通常狀況下是左結合的 #ps:在沒有更高優先級運算符,即只有同級運算符時時從左到右結合 print 1+2+3*5+5 #輸出結果:23 #二、出現賦值的時候通常是右結合 #ps:在有賦值運算符時,是右結合,即先算出1+2的值之後再賦值給priority priority=1+2 print priority #輸出結果:23
2.python運算符優先級大招:
你們可能會以爲Python運算符的優先級不容易記憶,並且有時候還容易混淆。在實際運用中根據業務邏輯可能咱們知道要先作什麼再作什麼,可是卻忘記Python運算符的優先級了,該怎麼辦?這裏教你們一個殺手鐗,絕對百試不爽。
代碼正文&講解:
#python運算符優先級大招 '''好比說有這個需求: 去商店買水,買3瓶水,每瓶5塊,再買一個綠箭(假設綠箭3塊),總共多少錢? 這個簡單的應用很是明顯,須要先用乘法再用加法,若是這裏你忘記了乘法和加法的優先級,能夠這樣: ''' print (3*5)+3 #輸出結果:18 #ps: 這只是一個簡單的例子,只是爲了告訴你們實際應用中實在不行咱就放大招。有備無患。
Python表達式基本概念:
python中,值、變量和運算符共同組成的總體稱爲表達式
代碼正文&講解:
#python表達式 #1 字符串表達式 "Hello" #2 計算表達式 2+3 #3 賦值表達式 first=0 #4 變量表達式 first #5 值表達式 3 #等等
應上一篇博客Python基本語法[二],python入門到精通[四]園友的意見,給出瀏覽博客後的練習。若是你們有什麼有意思的題目也能夠拿出來一塊兒搗鼓,或者留做下一篇博客的"博後練習"。
練習:
- 弄清楚與或非二進制運算
- 熟記python運算符優先級關係
- 去商店買水,買3瓶水,每瓶5塊,遇上雙11,商店促銷,如今每瓶降價1.5塊,總共多少錢。(須要用放大招和不放大招兩種方式)
關於python的運算符你們若是有什麼疑問或者補充的能夠踊躍發言,咱們一塊兒探討。
做 者:請叫我頭頭哥
出 處:http://www.cnblogs.com/toutou/
關於做者:專一於基礎平臺的項目開發。若有問題或建議,請多多賜教!
版權聲明:本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
特此聲明:全部評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我
聲援博主:若是您以爲文章對您有幫助,能夠點擊文章右下角【推薦】一下。您的鼓勵是做者堅持原創和持續寫做的最大動力!