數學裏面的加減乘除,就是運算符,可是 Python 的運算符更多樣,更復雜,分爲算術運算符、比較運算符、賦值運算符、位運算符、邏輯運算符、成員運算符、身份運算符。爲了更直觀的看到運算符的使用,本文采用代碼和註釋結合的方式進行講解。html
a = 21 b = 10 c = 0 # 加 c = a + b # 31 # 減 c = a - b # 11 # 乘 c = a * b # 210 # 除 c = a / b # 2.1 # 求餘數 c = a % b # 1 # 冪(次方) a = 2 b = 3 c = a**b # 8 # 取整數,向下取接近商的整數 c = 9//2 # 4 c = -9//2 # -5
代碼中的
if ... else ...
是指「若是,知足條件,作什麼事,不然,作其餘事」。python
a = 21 b = 10 c = 0 # 等於 if ( a == b ): print("a 等於 b") else: print("a 不等於 b") # 不等於 if ( a != b ): print("a 不等於 b") else: print("a 等於 b") # 小於 if ( a < b ): print("a 小於 b") else: print("a 大於等於 b") # 大於 if ( a > b ): print("a 大於 b") else: print("a 小於等於 b") a = 5 b = 20 # 小於等於 if ( a <= b ): print("a 小於等於 b") else: print("a 大於 b") # 大於等於 if ( b >= a ): print("b 大於等於 a") else: print("b 小於 a")
=
是賦值運算符,算術運算符均可以右邊加上 =
變成「算術賦值」運算符。函數
a = 21 b = 10 c = 0 # 簡單的賦值 c = a + b # 31 # 等價於 c = c + a c += a # 52 # 等價於 c = c - a c -= a # 31 # 等價於 c = c * a c *= a # 651 # 等價於 c = c / a c /= a # 31.0 c = 2 # 等價於 c = c % a c %= a # 2 # 等價於 c = c ** a c **= a # 2097152 # 等價於 c = c // a c //= a # 99864
Python3.8 新增了海象運算符 :=
,能夠在表達式內部爲變量賦值:編碼
if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")
咱們常見的數字是十進制的,十進制能夠轉換爲 01 形式的二進制,例如 60 的轉換爲二進制後變成了 0011 1100。位運算符就是把數字看做二進制來進行計算。code
a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 # 與,兩個值都爲1,結果爲1,不然爲0 c = a & b # 12 = 0000 1100 # 或,兩個值有一個爲1,結果就爲1 c = a | b # 61 = 0011 1101 # 異或,兩個值不一樣,結果爲1 c = a ^ b # 49 = 0011 0001 # 取反,0變成1,1變成0 c = ~a # -61 = 1100 0011 # 左移,高位丟棄,低位補0 c = a << 2 # 240 = 1111 0000 # 右移,低位丟棄,高位補0 c = a >> 2 # 15 = 0000 1111
常常用在判斷條件裏面,判斷條件爲 True / False。htm
a = 10 b = 20 # 布爾「與」,2個值都爲True,結果爲True if ( a and b ): print("變量 a 和 b 都爲 true") else: print("變量 a 和 b 有一個不爲 true") # 布爾「或」,只要有一個爲True,結果就爲True if ( a or b ): print("變量 a 和 b 都爲 true,或其中一個變量爲 true") else: print("變量 a 和 b 都不爲 true") # 修改變量 a 的值 a = 0 if ( a and b ): print("變量 a 和 b 都爲 true") else: print("變量 a 和 b 有一個不爲 true") if ( a or b ): print("變量 a 和 b 都爲 true,或其中一個變量爲 true") else: print("變量 a 和 b 都不爲 true") if not( a and b ): print("變量 a 和 b 都爲 false,或其中一個變量爲 false") else: print("變量 a 和 b 都爲 true")
注意,邏輯運算符是從左到右依次運算的,只要不符合條件就不會繼續運算,好比 and,只要出現了 False,就會中止運算,結果直接斷定爲 False。好比 or,只要出現了 True,就會中止運算,結果直接斷定爲 True。對象
成員是指字符串、列表、元組等系列中的元素,成員運算符用於判斷元素是否在系列裏面。內存
a = 10 b = 20 list = [1, 2, 3, 4, 5 ] # in 在裏面 if ( a in list ): print("變量 a 在給定的列表中 list 中") else: print("變量 a 不在給定的列表中 list 中") # not in 不在裏面 if ( b not in list ): print("變量 b 不在給定的列表中 list 中") else: print("變量 b 在給定的列表中 list 中")
Python 裏面的對象其實都有一個內存地址,能夠使用 id()
函數來獲取,身份就是指的內存地址。element
a = 20 b = a if ( a is b ): print("a 和 b 有相同的標識") # 結果 else: print("a 和 b 沒有相同的標識") if ( id(a) == id(b) ): print("a 和 b 有相同的標識") # 結果 else: print("a 和 b 沒有相同的標識") # 修改變量 b 的值 b = 30 if ( a is b ): print("a 和 b 有相同的標識") else: print("a 和 b 沒有相同的標識") # 結果 if ( a is not b ): print("a 和 b 沒有相同的標識") # 結果 else: print("a 和 b 有相同的標識")
咱們在前面知道 ==
是能夠判斷變量是否相等的,注意,==
判斷的是值是否相等,is
判斷的是引用(內存地址)是否相等。字符串
不用刻意記優先級,實際編碼時請盡情濫用小括號 ()
,防止優先級算錯。
運算符 | 描述 |
---|---|
** | 指數 (最高優先級) |
~ + - | 按位翻轉, 一元加號和減號 (最後兩個的方法名爲 +@ 和 -@) |
* / % // | 乘,除,求餘數和取整除 |
+ - | 加法減法 |
>> << | 右移,左移運算符 |
& | 位 'AND' |
^ | | 位運算符 |
<= < > >= | 比較運算符 |
== != | 等於運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
is is not | 身份運算符 |
in not in | 成員運算符 |
not and or | 邏輯運算符 |
本文以實例的形式直觀的介紹了 Python 運算符的使用。運算符是 Python 中相對簡單的知識點。
參考資料: