運算符號與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

  1. Python 偵測到兩個運算元:5 (型別為 int) 和 2.5 (型別為 float)。
  2. Python 決定將結果提升為 float
  3. 它在內部呼叫 float(5), 建立值為 5.0 的 float物件。(不是轉換,5 仍然存在)
  4. 最後,執行 5.0 + 2.5 的浮點數運算。
  5. 得到最終結果 7.5,其型別為 float
result = 5 + 2.5
print(result)
print(type(result))

輸出結果:

7.5
<class 'float'>

第 3 章:比較運算符號 (Comparison Operators)

比較運算符號用於比較兩個值的大小或是否相等。它們的運算結果永遠是布林值 (Boolean),也就是 TrueFalse

運算符號 名稱 範例 結果
== 等於 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}")

留言

這個網誌中的熱門文章

目錄

Python IDLE 安裝與使用

Python 核心資料型態:數字、文字與邏輯