Python 運算子全攻略:算術、比較、邏輯、賦值運算一次搞懂
在 Python 程式設計中,運算子 (operator) 是用於對值和變數執行運算的特殊符號。運算子和運算元 (operand) 組成了表達式 (expression),表達式是 Python 程式碼的基本組成部分。本文將詳細介紹 Python 中四大類核心運算子,並提供豐富的範例和表格,助您快速掌握。
什麼是運算子 (Operator) 和運算元 (Operand)?
- 運算子 (Operator): 執行特定運算的符號,例如加號 (+)、減號 (-)、等於 (==) 等。
- 運算元 (Operand): 運算子所操作的值或變數。
例如,在表達式 2 + 3 中,+ 是運算子,2 和 3 是運算元。
Python 運算子總覽
Python 提供了以下幾類主要的運算子:
- 算術運算子 (Arithmetic Operators): 用於執行數學運算。
- 比較運算子 (Comparison Operators): 用於比較兩個值的大小關係。
- 邏輯運算子 (Logical Operators): 用於組合或修改布林值 (True/False)。
- 賦值運算子 (Assignment Operators): 用於將值賦給變數。
1. 算術運算子 (Arithmetic Operators)
算術運算子用於執行基本的數學運算,例如加、減、乘、除等。
運算子 | 描述 | 範例 | 結果 |
---|---|---|---|
+ | 加法 | 10 + 5 | 15 |
- | 減法 | 10 - 5 | 5 |
* | 乘法 | 10 * 5 | 50 |
/ | 除法 (結果為浮點數) | 10 / 4 | 2.5 |
// | 整數除法 (無條件捨去) | 10 // 3 | 3 |
% | 取餘數 | 10 % 3 | 1 |
** | 次方 | 10 ** 2 | 100 |
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)
比較運算子用於比較兩個值的大小關係,結果為布林值 (True 或 False)。
運算子 | 描述 | 範例 | 結果 |
---|---|---|---|
== | 等於 | 5 == 5 | True |
!= | 不等於 | 5 != 3 | True |
> | 大於 | 5 > 3 | True |
< | 小於 | 5 < 3 | False |
>= | 大於等於 | 5 >= 5 | True |
<= | 小於等於 | 5 <= 3 | False |
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。 |
not | 非 | 將 True 變 False,False 變 True。 |
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 = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 2 | x = x - 2 |
*= | x *= 4 | x = x * 4 |
... | ... | ... |
複合賦值運算子可以讓程式碼更簡潔,也更有效率。
x = 10
x += 5 # x 現在是 15
x *= 2 # x 現在是 30
print(x)
5. 運算子的優先順序
當一個表達式中有多個運算子時,Python 會依照「優先順序」(precedence) 決定計算順序。您可以使用括號 () 來明確指定運算順序,這也是最推薦的做法。
常見運算子優先順序 (由高到低):
- () (括號)
- ** (次方)
- *, /, //, % (乘、除、整數除、取餘數)
- +, - (加、減)
- 比較運算子 (<, >, ==, etc.)
- not
- and
- 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)
解答:
- 14.0
- False
- 4