部落格前言
運算子用於執行程式程式碼運算,會針對一個以上運算元專案來進行運算。例如:2+3,其運算元是2和3,而運算子則是“+”。在計算器語言中運算子大致可以分為5種型別:算術運算子、連線運算子、關係運算子、賦值運算子和邏輯運算子。運算子也是計算機裡比較好理解的人類語言之一,只要稍微懂點數學的,都能看懂算數運算子。在Python中常見的運算子有: +、-、*、/、**/<、>、!=、//、%、&、|、^、~、>>、<<、<=、>=、==、not、and、or 。在接下來的博文中再一一介紹這些運算子的具體事例。
寫在前面
python你不去認識它,可能沒什麼,一旦你認識了它,你就會愛上它
python運算子基礎例項
程式碼正文&講解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# 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 |
這裡的這些運算可能按位運算會感覺比較麻煩,不過沒有關係,大家用多了就熟練了。
python運算子優先順序
1.python運算子優先順序排行榜:
在一個表示式中可能包含多個有不同運算子連線起來的、具有不同資料型別的資料物件;由於表示式有多種運算,不同的運算順序可能得出不同結果甚至出現錯誤運算錯誤,因為當表示式中含多種運算時,必須按一定順序進行結合,才能保證運算的合理性和結果的正確性、唯一性。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。優先順序高的運算子先結合,優先順序低的運算子後結合,同一行中的運算子的優先順序相同。
程式碼正文&講解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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運算子優先順序使用規律:
程式碼正文&講解:
1 2 3 4 5 6 7 8 9 |
#python優先順序使用規律 #1、一般情況下是左結合的 #ps:在沒有更高優先順序運算子,即只有同級運算子時時從左到右結合 print 1+2+3*5+5 #輸出結果:23 #2、出現賦值的時候一般是右結合 #ps:在有賦值運算子時,是右結合,即先算出1+2的值以後再賦值給priority priority=1+2 print priority #輸出結果:23 |
2.python運算子優先順序大招:
大家可能會覺得Python運算子的優先順序不容易記憶,而且有時候還容易混淆。在實際運用中根據業務邏輯可能我們知道要先做什麼再做什麼,但是卻忘記Python運算子的優先順序了,該怎麼辦?這裡教大家一個殺手鐗,絕對百試不爽。
程式碼正文&講解:
1 2 3 4 5 6 7 8 |
#python運算子優先順序大招 '''比如說有這個需求: 去商店買水,買3瓶水,每瓶5塊,再買一個綠箭(假設綠箭3塊),總共多少錢? 這個簡單的應用非常明顯,需要先用乘法再用加法,如果這裡你忘記了乘法和加法的優先順序,可以這樣: ''' print (3*5)+3 #輸出結果:18 #ps: 這只是一個簡單的例子,只是為了告訴大家實際應用中實在不行我們就放大招。有備無患。 |
Python表示式
Python表示式基本概念:
python中,值、變數和運算子共同組成的整體稱為表示式
程式碼正文&講解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#python表示式 #1 字串表示式 "Hello" #2 計算表示式 2+3 #3 賦值表示式 first=0 #4 變數表示式 first #5 值表示式 #等等 |
博後練習
應上一篇部落格Python基本語法[二],python入門到精通[四]園友的意見,給出瀏覽部落格後的練習。如果大家有什麼有意思的題目也可以拿出來一起搗鼓,或者留作下一篇部落格的”博後練習”。
練習:
- 弄清楚與或非二進位制運算
- 熟記python運算子優先順序關係
- 去商店買水,買3瓶水,每瓶5塊,趕上雙11,商店促銷,現在每瓶降價1.5塊,總共多少錢。(需要用放大招和不放大招兩種方式)
部落格總結
關於python的運算子大家如果有什麼疑問或者補充的可以踴躍發言,我們一起探討。