[Python] 運算子的種類與意義

Python 中的運算子在建立有意義的程序上是不可或缺的。這些運算子與數學符號類似,均具有特定的用途。在此文章中,我們將深入探討 Python 中的各種運算子,闡述其功能並提供範例程式碼以供更清晰的理解。

Python 中的運算子類型

算術運算子 (Arithmetic Operators)

算術運算子用於基本的數學操作,例如加、減、乘、除等。

python
a = 5
b = 3

print(a + b)  # 加法
print(a - b)  # 減法
print(a * b)  # 乘法
print(a / b)  # 除法
8
2
15
1.6666666666666667
運算子運算範例結果描述
+加法5 + 813兩側的值相加
-減法8 - 53右側的值從左側減去
*乘法5 * 840兩側的值相乘
/除法8 / 24左側的值除以右側
%取餘8 % 53返回除法的餘數
//地板除法8 // 51除法的結果為最靠近數線左側的整數
**指數運算2 ** 38對運算子進行指數(冪)計算

關係運算子 (Relational Operators)

關係運算子用於比較兩個運算元的值,透過這些運算子,可以確定兩個值是否相等、一個值是否大於另一個,或者一個是否小於另一個。

python
print(a > b)  # 大於
print(a < b)  # 小於
print(a == b) # 等於
True
False
False
運算子運算範例結果描述
==等於5 == 8False如果兩個運算元的值相等則為真
!=不等於5 != 8True如果兩個運算元的值不相等則為真
>大於8 > 5True如果左運算元大於右運算元則為真
<小於5 < 8True如果左運算元小於右運算元則為真
>=大於或等於8 >= 5True如果左運算元大於或等於右運算元則為真
<=小於或等於5 <= 8True如果左運算元小於或等於右運算元則為真

邏輯運算子 (Logical Operators)

邏輯運算子用於評估多個條件的真偽。這些運算子主要用於控制程序的流程,通過組合不同的條件產生最終的邏輯結果(真或假)。

python
x = True
y = False

print(x and y) # 邏輯且
print(x or y)  # 邏輯或
print(not x)   # 邏輯非
False
True
False
運算子運算範例結果描述
and邏輯且True and FalseFalse如果兩個運算元都為真則為真
or邏輯或True or FalseTrue如果至少有一個運算元為真則為真
not邏輯非not TrueFalse如果運算元為假則為真(運算元的補數)

位元運算子 (Bitwise Operators)

位元運算子作用於數字的二進制表示。它們在運算元的每個位上執行操作,以支援在位元層級的邏輯運算、移位和否定操作。

python
print(a & b)   # 位元且
print(a | b)   # 位元或
print(a ^ b)   # 位元互斥或
1
7
6
運算子運算範例結果描述
&位元且5 & 31兩個運算元中都設置的位
|位元或5 | 37任一運算元中設置的位
^位元互斥或5 ^ 36僅在一個運算元中設置的位
~位元非~5-6設置的位將不被設置,反之亦然
<<左移5 << 110將數字的位移至左邊
>>右移5 >> 12將數字的位移至右邊

指派運算子 (Assignment Operators)

指派運算子被用於將值指派給變量。除基本的指派之外,這些運算子也提供將操作與指派結合的功能。例如,它們可以增加一個特定數字到一個值,然後將結果指派給一個變量。

python
a += 2  # 將 a 的值增加 2
b -= 1  # 將 b 的值減少 1
a = 7
b = 2
運算子操作範例結果描述
=指派x = 77將右運算元的值指派給左運算元
+=加並指派x += 3x + 3將右運算元加到左運算元,然後將結果指派給左運算元
-=減並指派x -= 3x - 3從左運算元減去右運算元,然後將結果指派給左運算元
*=乘並指派x *= 3x * 3將左運算元乘以右運算元,然後將結果指派給左運算元
/=除並指派x /= 3x / 3將左運算元除以右運算元,然後將結果指派給左運算元
%=取模並指派x %= 3x % 3用右運算元對左運算元取模,然後將結果指派給左運算元
//=取整數除法的商並指派x //= 3x // 3將左運算元進行整數除法後指派給左運算元
**=指數並指派x **= 3x ** 3將左運算元提升到右運算元的指數,然後將結果指派給左運算元

成員運算子 (Membership Operators)

成員運算子用於檢測值是否存在於一個序列中,例如列表、字符串或元組。主要用於檢查特定元素是否存在於指定的序列中。

python
list = [1, 2, 3, 4, 5]
print(3 in list)    # 檢查3是否在列表中
print(6 not in list) # 檢查6是否不在列表中
True
True
運算子操作範例結果描述
in若變量在指定的序列中找到則評估為真,否則為假5 in [1, 2, 3, 4, 5]True若值/變量在序列中被找到則為真
not in若變量在指定的序列中未找到則評估為真,否則為假6 not in [1, 2, 3, 4, 5]True若值/變量不在序列中則為真

身份運算子 (Identity Operators)

身份運

算子用於比較兩個對象的記憶體位置。它們主要用於確定兩個變量是否引用記憶體中的同一對象。

python
x = [1, 2, 3]
y = x

print(y is x)       # 因為 y 和 x 指向同一對象所以為真
print(y is not x)   # 出於同樣的原因而為假
True
False
運算子操作範例結果描述
is若兩邊的變量指向同一對象則評估為真,否則為假x is y取決於 x 和 y 的值若兩個變量是同一對象則為真
is not若兩邊的變量不指向同一對象則評估為真,否則為假x is not y取決於 x 和 y 的值若兩個變量不是同一對象則為真

理解Python的運算子對於高效的編程至關重要。無論是比較變量、調整值還是進行計算,Python的多功能運算子都是這些操作的核心。


常見問答 (FAQs)

  1. Python中的 === 有什麼區別?
    • == 用於比較兩運算元的值是否相等,返回布爾值(TrueFalse)。例如,7 == 7 的結果是 True。而 = 用於將右運算元的值指派給左邊的變量。
  2. Python中的 /// 有什麼區別?
    • / 運算子進行除法並返回浮點數結果。例如,5 / 2 的結果是 2.5。相反,// 進行除法並向下取整到最接近的整數,所以 5 // 2 的結果是 2
  3. 我應該何時使用位運算子,如 &|
    • 位運算子直接對數字的二進制表示進行操作。在某些特定情境下,例如在資料處理或低級編程中操作單個位時,它們非常有用。
  4. 為什麼使用 is 運算子而不是 ==
    • is 運算子檢查兩個變量是否引用記憶體中的確切同一對象,而不僅僅是它們是否具有相等的值。例如,兩個具有相同值的列表對於 == 可能是 True,但如果它們在記憶體中是不同的對象,則對於 isFalse
  5. innot in 如何與不同的Python數據類型一起工作?
    • 成員運算子用於檢測存在性。在字符串中,in 用於驗證是否存在子字符串。在列表或元組中,它檢查項目是否存在。例如,'apple' in 'pineapple' 的結果是 True,而 3 in [1, 2, 3] 的結果也是 True
© Copyright 2023 CLONE CODING