Python运算符可不只有加减乘除
數學里面的加減乘除,就是運算符,但是 Python 的運算符更多樣,更復雜,分為算術運算符、比較運算符、賦值運算符、位運算符、邏輯運算符、成員運算符、身份運算符。為了更直觀的看到運算符的使用,本文采用代碼和注釋結合的方式進行講解。
算術運算符
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學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' 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.0c = 2 # 等價于 c = c % a c %= a # 2# 等價于 c = c ** a c **= a # 2097152# 等價于 c = c // a c //= a # 99864Python3.8 新增了海象運算符 := ,可以在表達式內部為變量賦值:
if (n := len(a)) > 10:print(f"List is too long ({n} elements, expected <= 10)")位運算符
我們常見的數字是十進制的,十進制可以轉換為 01 形式的二進制,例如 60 的轉換為二進制后變成了 0011 1100。位運算符就是把數字看作二進制來進行計算。
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。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' 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() 函數來獲取,身份就是指的內存地址。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' a = 20 b = aif ( 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 判斷的是引用(內存地址)是否相等。
運算符優先級
不用刻意記優先級,實際編碼時請盡情濫用小括號 () ,防止優先級算錯。
小結
本文以實例的形式直觀的介紹了 Python 運算符的使用。運算符是 Python 中相對簡單的知識點。
總結
以上是生活随笔為你收集整理的Python运算符可不只有加减乘除的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python十大常用文件操作
- 下一篇: Python二十个小技巧