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並不成立。