Python 運算子全攻略:算術、比較、邏輯、賦值運算一次搞懂

Python 運算子全攻略:算術、比較、邏輯、賦值運算一次搞懂 - CCC Blog

Python 運算子全攻略:算術、比較、邏輯、賦值運算一次搞懂

各種數學和邏輯符號,如加、減、乘、除、等於,象徵著 Python 中的運算子。

在 Python 程式設計中,運算子 (operator) 是用於對值和變數執行運算的特殊符號。運算子和運算元 (operand) 組成了表達式 (expression),表達式是 Python 程式碼的基本組成部分。本文將詳細介紹 Python 中四大類核心運算子,並提供豐富的範例和表格,助您快速掌握。

什麼是運算子 (Operator) 和運算元 (Operand)?

  • 運算子 (Operator): 執行特定運算的符號,例如加號 (+)、減號 (-)、等於 (==) 等。
  • 運算元 (Operand): 運算子所操作的值或變數。

例如,在表達式 2 + 3 中,+ 是運算子,23 是運算元。

Python 運算子總覽

Python 提供了以下幾類主要的運算子:

  • 算術運算子 (Arithmetic Operators): 用於執行數學運算。
  • 比較運算子 (Comparison Operators): 用於比較兩個值的大小關係。
  • 邏輯運算子 (Logical Operators): 用於組合或修改布林值 (True/False)。
  • 賦值運算子 (Assignment Operators): 用於將值賦給變數。

1. 算術運算子 (Arithmetic Operators)

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

運算子描述範例結果
+加法10 + 515
-減法10 - 55
*乘法10 * 550
/除法 (結果為浮點數)10 / 42.5
//整數除法 (無條件捨去)10 // 33
%取餘數10 % 31
**次方10 ** 2100
a = 10
b = 3
print(f"{a} + {b} = {a + b}")    # 13
print(f"{a} // {b} = {a // b}")  # 3
print(f"{a} % {b} = {a % b}")    # 1
print(f"{a} ** {b} = {a ** b}")  # 1000

# 字串也支援部分算術運算子
print(f"'hello' + 'world' = {'hello' + 'world'}") # helloworld
print(f"'ha' * 3 = {'ha' * 3}") # hahaha

注意事項:

  • 除法 (/) 的結果一定是浮點數。
  • 除數不能為 0,否則會引發 ZeroDivisionError

2. 比較運算子 (Comparison Operators)

比較運算子用於比較兩個值的大小關係,結果為布林值 (TrueFalse)。

運算子描述範例結果
==等於5 == 5True
!=不等於5 != 3True
>大於5 > 3True
<小於5 < 3False
>=大於等於5 >= 5True
<=小於等於5 <= 3False
x = 10
y = 5
print(f"{x} > {y}: {x > y}")        # True
print(f"'apple' < 'banana': {'apple' < 'banana'}")  # True (字串依字典序比較)

3. 邏輯運算子 (Logical Operators)

邏輯運算子用於組合或修改布林值,常用於條件判斷。

運算子描述說明
and兩個運算元都為 True 才為 True
or其中一個運算元為 True 就為 True
notTrueFalseFalseTrue
age = 25
is_student = False

# 判斷是否為 18 歲以上且非學生
if age >= 18 and not is_student:
    print("符合社會人士資格")

# 判斷是否 12 歲以下或是學生
if age < 12 or is_student:
    print("可以購買優惠票")

重要觀念:短路求值 (Short-circuit evaluation)

  • and: 如果第一個運算元是 False,Python 就不會再計算第二個運算元。
  • or: 如果第一個運算元是 True,Python 就不會再計算第二個運算元。

4. 賦值運算子 (Assignment Operators)

賦值運算子用於將值賦給變數。除了基本的 =,還有結合其他運算子的複合賦值運算子。

運算子範例等同於
=x = 5x = 5
+=x += 3x = x + 3
-=x -= 2x = x - 2
*=x *= 4x = x * 4
.........

複合賦值運算子可以讓程式碼更簡潔,也更有效率。

x = 10
x += 5  # x 現在是 15
x *= 2  # x 現在是 30
print(x)

5. 運算子的優先順序

當一個表達式中有多個運算子時,Python 會依照「優先順序」(precedence) 決定計算順序。您可以使用括號 () 來明確指定運算順序,這也是最推薦的做法。

常見運算子優先順序 (由高到低):

  1. () (括號)
  2. ** (次方)
  3. *, /, //, % (乘、除、整數除、取餘數)
  4. +, - (加、減)
  5. 比較運算子 (<, >, ==, etc.)
  6. not
  7. and
  8. or
# 先乘除後加減
result = 2 + 3 * 4  # 3 * 4 = 12, then 2 + 12 = 14
print(result)

# 使用括號改變優先級
result = (2 + 3) * 4  # 2 + 3 = 5, then 5 * 4 = 20
print(result)

總結

本文詳細介紹了 Python 中四大類核心運算子:算術、比較、邏輯和賦值。這些運算子是 Python 程式設計的基礎,透過組合使用它們,您可以建構出各種複雜的表達式和邏輯判斷。務必熟悉每種運算子的用法和優先順序,才能寫出正確、高效的 Python 程式碼。

小測驗

請問以下程式碼的輸出為何?

# 題目一
a = 10
b = 5
c = 2
result = a + b * c / 2 - 1
print(result)

# 題目二
x = True
y = False
z = True
print(not x or y and z)

# 題目三
m = 8
m %= 3
m **= 2
print(m)

解答:

  1. 14.0
  2. False
  3. 4
較新的 較舊