Python 運算子

我們將在這一節裡介紹 Python 運算子的相關知識。

運算子是對運算元 (值或變數) 執行特定操作的特殊符號, 例如, 在 a + b 中, + 是操作變數 a 和 b 的運算子, 這些變數稱為運算元。

下面是 Python 運算子的一些型別:

Python 算術運算子:

算術運算子對變數進行加法、減法、乘法等算術運算的運算子。

以下表格列出了 Python 算術運算子以及示例:

運算子 描述 例子
+ 加法運算 a + b, +a
- 減法運算 a - b, -a
* 乘法運算 a * b
/ 除法運算,結果總是返回浮點型別。 a / b
% 求餘運算 a % b
// 取整除,結果返回捨去小數部分的整數 a // b
** 冪運算,返回 x 的 y 次方 a ** b

Python 算術運算子例項:

下面的程式碼中是, 算術運算子用於兩個運算元的例子:

a = 24
b = 7
print('a + b =', a+b)
print('a - b =', a-b)
print('a * b =', a*b)
print('a / b =', a/b)
print('a // b =', a//b)
print('a ** b =', a**b)
a + b = 31
a - b = 17
a * b = 168
a / b = 3.4285714285714284
a // b = 3
a ** b = 4586471424

Python 比較運算子:

比較運算子是用來比較兩個值大小的運算子,運算子的結果是二選一,True 或是 False

下面列舉出 Python 中的比較運算子:

運算子 描述 例子
> 大於 - 比較 a 是否大於 b a > b
< 等於 - 比較 a 是否小於 b a < b
== 等於 - 比較兩變數是否相等 a == b
!= 不等於 - 比較兩變數是否不相等 a != b
>= 大於等於 - 比較 a 是否大於或等於 b a >= b
<= 小於等於 - 比較 a 是否小於或等於 b a <= b

Python 比較運算子例項:

下面舉例來說明 Python 比較運算子的應用。

a = 12
b = 24
print('a > b is ', a>b)
print('a < b is ', a<b)
print('a == b is ', a==b)
print('a != b is ', a!=b)
print('a >= b is ', a>=b)
print('a <= b is ', a<=b)
a > b is False
a < b is True
a == b is False
a != b is True
a >= b is False
a <= b is True

Python 邏輯運算子:

運算子 描述 例子
and 與運算 - 如果兩側邏輯都為 True,則結果為 True,否則為 False a and b
or 或運算 - 如果兩側邏輯有一個為 True,則結果為 True,否則為 False a or b
not 非運算 - 如果 a 為 True,返回 False; 如果 a 為 False,返回 True not a

Python 邏輯運算子例項

下面舉例來說明 Python 邏輯運算子的具體應用。

a = False
b = True
print('a and b =', a and b)
print('a or b =', a or b)
print('not b =', not b)
a and b = False
a or b = True
not b = False

Python 位運算子:

Python 位運算子執行位運算,其中的運算元是執行位運算的二進位制數字。 下面列出來 Python 中所有的位運算子,為了方便說明,我們取 a = 4 (0b100) 以及 b = 5 (0b101):

運算子 描述 例子
& 位與操作符 - 當兩側數字在該位上都是 1 的時候,結果該位也為 1,否則為 0 a &b = 4
| 位或操作符 - 當兩側數字在該位上只要有一個是 1 的時候,結果該位為 1,否則為 0 a | b = 5
~ 位取反操作符 - 對運算元進行按位取反操作,1 變成 00 變成 1 ~a = -5
^ 位異或操作符 - 當兩側數字對應位二進位制相異時,結果為 1 a^b= 1
>> 右移操作符 - 將>>左側的數字右移若干位,左側補齊 0 a >>2= 1
<< 左移操作符 - 將>>左側的數字左移若干位,右側補 0,左側高位數捨棄 a<< 2 =16

Python 賦值運算子:

賦值運算子 = 為變數分配數值。賦值運算子對變數進行初始化,比如 x = 1 將數值 1 賦值給變數 x

在 Python 中, 有複合賦值運算子, 它們是將算術運算子和賦值運算子相組合, 或者是將按位和賦值運算子相組合。

比如,x += 2 就是一個複合賦值語句, 其中 2 與變數 x 相加, 結果儲存在變數x中。

下面是賦值運算子以及複合賦值運算子的列表。

運算子 例子 等效於
= a = 8 a = 8
+= a += 8 a = a + 8
-= a -= 8 a = a - 8
*= a *= 8 a = a * 8
/= a /= 8 a = a / 8
%= a %= 8 a = a % 8
//= a //= 8 a = a // 8
**= a **= 8 a = a ** 8
&= a &= 8 a = a & 8
|= a |= 8 a = a | 8
^= a ^= 8 a = a ^ 8
>>= a >>= 8 a = a >> 8
<<= a <<= 8 a = a << 8

Python 特殊運算子:

在 Python 程式設計中, 有一些運算子具有特殊的含義, 稱為特殊運算子, 例如身份運算子以及成員運算子等。In Python

身份運算子:

在 Python 中, 運算子 isis not 被稱為身份運算子。身份運算子用於確定兩個變數是否是記憶體的同一部分。所以兩個變數是相等的, 兩個變數是相同的是兩個不同的語句。兩個變數假如具有相同的數值,那它們兩個數值相等,但並不是同一個 Python 物件。

運算子 描述
is 兩個變數具有相同的記憶體位置
is not 兩個變數不是指向相同的記憶體位置

Python 身份運算子例項

下面具體來說明下 Python 身份運算子的含義,

>>> a = [1]
>>> b = [1]
>>> c = a
>>> a is b
False
>>> a is c
True

ab 雖然具有相同的資料,都是列表[1],但它們指向的不是同一個記憶體物件,所以 a is not b。但 c=aa 的記憶體地址賦予了 c 的記憶體地址,所有它們指向了同一個 Python 物件,所以 a is c 是成立的。你可以用 id(x) 內建函式來具體檢視變數的記憶體地址

>>> id(a), id(b), id(c)
(87402760L, 87404296L, 87402760L)

從結果也能看出來,ac 具有相同的記憶體地址,並且同 b 不同。

Python 成員運算子:

在 Python 中,運算子 innot in 被稱為成員運算子。 成員運算子用於檢查變數是否位於序列(列表,元組,字串和字典)中。 所以兩個變數相等並且兩個變數相同是兩個不同的語句。

對 Python 字典進行運算子操作的時候,它只能檢查字典中的鍵,而不是檢查值。

運算子 描述
in in 前面的變數後面的序列中時,結果為 True
not in in 前面的變數不在後面的序列中時,結果為 True

Python 成員運算子例項

>>> a = 'Python Programming'
>>> print('y' in a)
True
>>> print('b' not in a)
True
>>> print('b' in a)
False
>>> x = {1:2;3:4}
>>> 1 in a
True
>>> 2 in a
False

y 存在於序列 a(字串)中,因此 y in a 返回 True。 類似地,b 不存在 a 中,所以返回 False

字典 x 具有兩個鍵 13,它們的值分別是 241 是字典的鍵,所以 1 in a 成立;雖然 2 是字典中某個鍵的值,但並不是鍵,所以 2 in a 並不成立。