Python 數字與運算子(Numbers and Operators)
這篇 Python 運算子教學將帶你認識 Python 的數字型別與各種運算子。Python 的數字主要有兩種:整數 int 與浮點數 float,搭配算術、比較、邏輯三類運算子,就能處理絕大多數的數值運算。
算術運算子
| 運算子 | 說明 | 範例 | 結果 |
|---|---|---|---|
+ | 加法 | 7 + 2 | 9 |
- | 減法 | 7 - 2 | 5 |
* | 乘法 | 7 * 2 | 14 |
/ | 除法(結果一定是 float) | 7 / 2 | 3.5 |
// | 整數除法(無條件捨去) | 7 // 2 | 3 |
% | 取餘數 | 7 % 2 | 1 |
** | 次方 | 7 ** 2 | 49 |
print(7 / 2) # 除法永遠回傳 float
print(7 // 2) # 整數除法
print(7 % 2) # 餘數,常用於判斷奇偶數
print(2 ** 10) # 2 的 10 次方
執行輸出:
3.5
3
1
1024
注意:7 / 2 即使整除也會回傳 float(8 / 2 是 4.0 不是 4),需要整數結果請用 //。
比較運算子
比較運算的結果是布林值 True 或 False:
| 運算子 | 說明 | 範例 | 結果 |
|---|---|---|---|
== | 等於 | 5 == 5 | True |
!= | 不等於 | 5 != 3 | True |
> / < | 大於 / 小於 | 5 > 3 | True |
>= / <= | 大於等於 / 小於等於 | 5 <= 3 | False |
Python 還支援數學式的串連比較:
age = 25
print(18 <= age < 65) # 等同於 18 <= age and age < 65
執行輸出:
True
邏輯運算子
| 運算子 | 說明 | 範例 | 結果 |
|---|---|---|---|
and | 兩者皆真才為真 | True and False | False |
or | 任一為真即為真 | True or False | True |
not | 真假反轉 | not True | False |
浮點數精度陷阱
這是每個 Python 初學者都會撞到的問題:
print(0.1 + 0.2)
print(0.1 + 0.2 == 0.3)
執行輸出:
0.30000000000000004
False
這不是 Python 的 bug,而是電腦用二進位儲存小數的先天限制(所有語言都一樣)。需要精確小數運算(例如金額計算)時,使用標準函式庫的 Decimal:
from decimal import Decimal
print(Decimal("0.1") + Decimal("0.2"))
執行輸出:
0.3
常見錯誤
1. ZeroDivisionError: division by zero
除數為 0。除法運算前先確認除數不為 0,特別是除數來自使用者輸入或計算結果時。
2. TypeError: unsupported operand type(s)
不同型別混算,最常見的是字串與數字相加("100" + 5)。先用 int() 或 float() 把字串轉成數字再運算。
3. 用 == 比較浮點數
如上面的範例,0.1 + 0.2 == 0.3 是 False。比較浮點數請改用 math.isclose(0.1 + 0.2, 0.3),或使用 Decimal。
總結
Python 算術運算子中最需要記住的是:/ 永遠回傳 float、// 才是整數除法、** 是次方;比較運算可以串連寫;浮點數有精度限制,金額運算用 Decimal。下一篇我們進入 Python 字串。