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 ...
是指「如果,滿足條件,做什麼事,否則,做其他事」。
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 ( 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。a = 10
b = 20# 布林「與」,2個值都為true,結果為trueif ( a and b ):
print("變數 a 和 b 都為 true")else:
print("變數 a 和 b 有乙個不為 true")# 布林「或」,只要有乙個為true,結果就為trueif ( a or b ):
print("變數 a 和 b 都為 true,或其中乙個變數為 true")else:
print("變數 a 和 b 都不為 true")# 修改變數 a 的值
a = 0if ( 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 = 20list = [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()
函式來獲取,身份就是指的記憶體位址。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 = 30if ( 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語言支援以下型別的運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 1 算術運算子 加號 減號 乘 除 取餘 乘方 整除 1 其中除號 要注意 在python2中,用作整除。解決方法有三 1 兩個相除的數中有乙個為實數。2 ...
python 運算子 python(運算子)
一 運算子 1.算數運算子 1 加 注意 字串與整數之間不能進行相加,需要通過str 或int 進行轉換資料型別 整數與整數相加 1 1 浮點數與浮點數相加 2.0 2.0 4.0 二進位制儲存精度誤差 1.1 1.3 2.4000000000000004 整數與浮點數相加 2 2.0 4.0字串之...
python增強運算子 Python 運算子過載
python語言提供了運算子過載功能,增強了語言的靈活性,這一點與c 有點類似又有些不同。鑑於它的特殊性,今天就來討論一下python運算子過載。python語言本身提供了很多魔法方法,它的運算子過載就是通過重寫這些python內建魔法方法實現的。這些魔法方法都是以雙下劃線開頭和結尾的,類似於x的形...