運算符號與Promotion
運算符號與型別提升(Promotion)
學習目標
- 認識 Python 中主要的運算符號類型:算術、比較、邏輯、指派。
- 理解「型別提升」在混合型別運算中的自動轉換機制。
- 學會區分浮點數除法
/與整數除法//的不同。 - 掌握如何使用比較與邏輯運算符號來建立條件判斷。
- 了解複合指派運算符號如何讓程式碼更簡潔。
第 1 章:算術運算符號 (Arithmetic Operators)
算術運算符號用於執行基本的數學計算,是你學習程式設計最先接觸到的運算符號。
| 運算符號 | 名稱 | 範例 | 結果 | 說明 |
|---|---|---|---|---|
+ |
加 | 10 + 5 |
15 |
|
- |
減 | 10 - 5 |
5 |
|
* |
乘 | 10 * 5 |
50 |
|
/ |
除 (浮點數) | 10 / 5 |
2.0 |
結果永遠是浮點數 |
// |
整數除法 (高斯除法) | 10 // 3 |
3 |
只取商的整數部分,捨去小數 |
% |
餘數 | 10 % 3 |
1 |
模數 |
** |
次方 (指數) | 2 ** 3 |
8 |
2 的 3 次方 |
第 2 章:型別提升 (Type Promotion)
當你對兩種不同數字型別的資料進行運算時,會發生什麼事?例如,一個整數 (int) 和一個浮點數 (float) 相加?
為了避免遺失精度 (例如小數點後的數字),Python 會自動將「整數」的型別提升為「浮點數」的型別,這個過程稱為型別提升 (Type Promotion)。
運算流程解析:5 + 2.5
- Python 偵測到兩個運算元:
5(型別為int) 和2.5(型別為float)。 - Python 決定將結果提升為
float。 - 它在內部呼叫 float(
5),建立值為5.0的 float物件。(不是轉換,5 仍然存在) - 最後,執行
5.0 + 2.5的浮點數運算。 - 得到最終結果
7.5,其型別為float。
result = 5 + 2.5
print(result)
print(type(result))
輸出結果:
7.5<class 'float'>
第 3 章:比較運算符號 (Comparison Operators)
比較運算符號用於比較兩個值的大小或是否相等。它們的運算結果永遠是布林值 (Boolean),也就是 True 或 False。
| 運算符號 | 名稱 | 範例 | 結果 |
|---|---|---|---|
== |
等於 | 5 == 5 |
True |
!= |
不等於 | 5 != 6 |
True |
> |
大於 | 10 > 5 |
True |
< |
小於 | 10 < 5 |
False |
>= |
大於等於 | 5 >= 5 |
True |
<= |
小於等於 | 5 <= 4 |
False |
注意:=是「指派」,用來把值放進變數;==才是「比較」,用來判斷兩邊是否相等。這是初學者最常犯的錯誤之一!
第 4 章:邏輯運算符號(Logical Operators)
邏輯運算符號的左值與右值都是布林值,一般用於結合多個布林運算式,常見於 if 判斷式中。
and: 左右兩邊的條件都必須為True,結果才是True。or: 左右兩邊的條件只要有一個為True,結果就是True。not: 將布林值反轉 (not True變成False)。
age = 25
has_ticket = True
# 範例 1: and
# 檢查年齡是否介於 18 到 65 之間
is_adult = age >= 18 and age < 65
print(f"是成年人嗎? {is_adult}")
# 範例 2: or
# 只要是 VIP 或持有學生證其一,即可享有折扣
is_vip = False
is_student = True
has_discount = is_vip or is_student
print(f"有折扣嗎? {has_discount}")
# 範例 3: not
can_enter = not age < 18 # 等同於 age >= 18
print(f"可以入場嗎? {can_enter}")
第 5 章:指派運算符號 (Assignment Operators)
指派運算符號用於將值賦予變數。除了最基本的 =,還有一系列的「複合指派運算符號」,它們是將算術運算與指派合併的語法糖,能讓程式碼更精簡。
| 運算符號 | 等價於 | 範例 |
|---|---|---|
x += 5 |
x = x + 5 |
將 x 的值加 5 |
x -= 5 |
x = x - 5 |
將 x 的值減 5 |
x *= 5 |
x = x * 5 |
將 x 的值乘以 5 |
x /= 5 |
x = x / 5 |
將 x 的值除以 5 |
score = 100
print(f"原始分數: {score}")
# 加上獎勵分數 10 分
score += 10 # 等同於 score = score + 10
print(f"加分後: {score}")
# 因為犯規,分數扣半
score /= 2 # 等同於 score = score / 2
print(f"扣半後: {score}")

留言
張貼留言