1. 程式人生 > 其它 >PYTHON 運算子

PYTHON 運算子

1.1 運算子

運算子也稱操作符,主要有算術,關係,邏輯,位等。

1.2 算術運算子

用於整數,浮點數的計算。

運算子 描述 例項
+ 加 - 兩個物件相加 a + b
- 減 - 得到負數或是一個數減去另一個數 a - b
* 乘 - 兩個數相乘或是返回一個被重複若干次的字串 a * b
/ 除 - x 除以 y b / a
% 取模 - 返回除法的餘數 b % a
** 冪 - 返回x的y次冪 a**b
// 取整除 - 向下取接近商的整數 a // b

有些語言兩個整數相除取整數部分,python則是浮點數。

對於字串型別:+是過載為連線運算,*是過載為重複運算。

1.3 關係運算

以下假設變數a為10,變數b為20:

運算子 描述 例項
== 等於 (a == b) 返回 False。
!= 不等於 (a != b) 返回 True。
> 大於 (a > b) 返回 False。
< 小於 (a < b) 返回 True。
>= 大於等於 (a >= b) 返回 False。
<= 小於等於 (a <= b) 返回 True。

關係運算用於比較整數,小數,也可以比較字串,元組,列表等。

1.4 賦值運算子

以下假設變數a為10,變數b為20:

運算子 描述 例項
= 賦值 c = a + b
+= 加法賦值 c += a
-= 減法賦值 c -= a
*= 乘法賦值 c *= a
/= 除法賦值 c /= a
%= 取模賦值 c %= a
**= 冪賦值 c **= a
//= 整除賦值 c //= a
:= 海象運算子 可在表示式內部為變數賦值。

複合賦值就是簡化表示式的寫法,如: c+=a 相當於 c = c + a

a = [1, 2, 3, 4, 5]
if n := len(a) < 10:  # 在表示式內部為變數賦值
    print("< 10")

1.5 邏輯運算

運算子 邏輯表示式 描述 例項
and x and y 與 - x,y都為True結果為True a and b
or x or y 或 - 有一個為True結果為True a or b
not not x 非 - 狀態取返 not a

注意:邏輯運算是採用短路設計的

and 運算,如果第一個運算元為False,則不計算第二個表示式(因為已經能確定整個表示式的值了)

or 運算,如果第一個運算元為True,則不計算第二個表示式

1.6 位運算

按位運算子是把數字看作二進位制來進行計算的。Python中的按位運演算法則如下:

下表中變數 a 為 60,b 為 13二進位制格式如下:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011
運算子 描述 例項
& 位與:兩個值都為1,結果為1,否則為0 a & b
| 位或:兩個位有一個為1,結果為1,否則為0 a | b
^ 位異或:兩個位相異,結果為1 ,否則為0 a ^ b
~ 取反:把1變為0,把0變為1 ~a
<< 左移:位左移,低位補0 a << 2
>> 右移:位右移,高位補符號位,移出的丟棄 a >> 2

1.7 成員運算

測試例項中包含了一系列的成員,包括字串,列表或元組。

運算子 描述 例項
in 在序列中返回 True,否則返回 False。 x in mylist
not in 不在序列中返回 True,否則返回 False。 x not in mylist

1.8 身份運算

身份運算子用於比較兩個物件的儲存單元

運算子 描述 例項
is is 是判斷兩個識別符號是不是引用自一個物件 x is y, 類似 id(x) == id(y)
is not is not 是判斷兩個識別符號是不是引用自不同物件 x is not y , 類似 id(x) != id(y)

注: id() 函式用於獲取物件記憶體地址。

1.9 運算子的優先順序

從高到低:算術 > 位 > 關係 > 邏輯 > 賦值

一般不用計,用()改變運算順序更直觀。