Filed under實戰開發指南on•3 分鐘閱讀

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

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

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

Python 中的運算子類型

算術運算子 (Arithmetic Operators)

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

a = 5
b = 3

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

關係運算子 (Relational Operators)

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

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

邏輯運算子 (Logical Operators)

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

x = True
y = False

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

位元運算子 (Bitwise Operators)

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

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

指派運算子 (Assignment Operators)

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

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

成員運算子 (Membership Operators)

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

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)

身份運

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

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中的 == 和 = 有什麼區別?

    • == 用於比較兩運算元的值是否相等,返回布爾值(True 或 False)。例如,7 == 7 的結果是 True。而 = 用於將右運算元的值指派給左邊的變量。
  2. Python中的 // 和 / 有什麼區別?

    • / 運算子進行除法並返回浮點數結果。例如,5 / 2 的結果是 2.5。相反,// 進行除法並向下取整到最接近的整數,所以 5 // 2 的結果是 2。
  3. 我應該何時使用位運算子,如 & 或 |?

    • 位運算子直接對數字的二進制表示進行操作。在某些特定情境下,例如在資料處理或低級編程中操作單個位時,它們非常有用。
  4. 為什麼使用 is 運算子而不是 ==?

    • is 運算子檢查兩個變量是否引用記憶體中的確切同一對象,而不僅僅是它們是否具有相等的值。例如,兩個具有相同值的列表對於 == 可能是 True,但如果它們在記憶體中是不同的對象,則對於 is 是 False。
  5. in 和 not in 如何與不同的Python數據類型一起工作?

    • 成員運算子用於檢測存在性。在字符串中,in 用於驗證是否存在子字符串。在列表或元組中,它檢查項目是否存在。例如,'apple' in 'pineapple' 的結果是 True,而 3 in [1, 2, 3] 的結果也是 True。
返回所有文章首頁