iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0

前言

昨天我們教了 input(),總算讓蛇會跟你「講話」了。
但一隻真正強大的程式小蛇,不能只會聊天,它還要會 數學運算狀態更新、以及 玩轉文字
今天就是 Python 的 運算大補帖

我們會學到:

  1. 數字運算:加減乘除、整除、餘數、次方,還有優先序
  2. 運算賦值+== 等超常用的縮寫
  3. 文字運算:字串串接、重複、格式化、清理

而這些功能,就是你日後做 計算機、記帳程式 等小專案的基礎。
準備好了嗎?讓我們開始今天的修煉吧 !!

ㄧ、數字運算

Python 裡的數字運算子非常直觀,你肯定看過或用過:

print(7 + 3)   # 加法
print(7 - 3)   # 減法
print(7 * 3)   # 乘法
print(7 / 3)   # 除法(會得到浮點數)
print(7 // 3)  # 整除
print(7 % 3)   # 取餘數
print(2 ** 5)  # 次方(2的5次方)

💡以下幫大家整理一些基本常用的數學運算子(應該在數學課都蠻常見的)

符號 說明 範例 結果
+ 加法 7 + 3 10
- 減法 7 - 3 4
* 乘法 7 * 3 21
/ 除法(結果為浮點數) 7 / 3 2.333...
// 整除(取商的整數部分) 7 // 3 2
% 取餘數(模數) 7 % 3 1
** 次方 2 ** 5 32
() 改變運算優先順序 (7 + 3) * 2 20

小提醒:除法陷阱

在 Python 裡:

  • / 一定會得到浮點數(例如 6 / 3 → 2.0 而不是 2
  • // 才是整除,丟掉小數點後的部分

這是很多初學者第一次會卡住的地方,記得分清楚喔!

運算子的優先順序(誰先誰後?)

在數學課裡老師常說:「先乘除,後加減」,Python 也是這樣遵守「規矩」的。
不過 Python 的規則更完整一點,有一個優先順序表可以記:

優先順序(由高到低) 運算子 說明 範例
最高 () 括號,強制先算 (2 + 3) * 4 = 20
** 次方 2 ** 3 = 8
*///% 乘法、除法、整除、餘數 10 // 3 = 3
+- 加法、減法 7 - 2 = 5
最低 =+=-=... 賦值運算子(最後才存起來) x = 5

規則很簡單:

  1. 有括號先算括號
  2. 次方()大過乘除
  3. 乘除 大過 加減
  4. 最後才會進行 賦值(存變數)

一起來看一下下面這個小練習(可以先在心中算一下答案喔):

y = (2 + 3) * 4 ** 2
print(y)

計算步驟:

  1. 先算括號 (2 + 3) = 5
  2. 再算次方 4 ** 2 = 16
  3. 最後相乘 5 * 16 = 80

有和你心中想的答案一樣嗎?有的話恭喜你掌握了這部分的概念喔!

接下來我們來現學現賣,來個有關運算類的簡單的小練習吧!

練習題 1:披薩分給朋友 🍕

小明買了一個超大披薩,切成 8 片。他想要分給 3 個朋友(不包括自己):

  1. 每個朋友可以分到幾片?(整除 //)
  2. 還會剩下幾片?(餘數 %)
  3. 如果一片披薩要價 45 元,整個披薩多少錢?(乘法 *)
  4. 每個朋友實際分到的價值是多少?(整除 * 單價)
pizza = 8
friends = 3
per_person = pizza // friends #依照題目所說的,要整除就要用//
leftover = pizza % friends #若要知道剩下幾片就是等同於取餘數的概念
price = 45
total = pizza * price
value_each = per_person * price

print("每個朋友可以分到", per_person, "片")
print("還剩下", leftover, "片")
print("整個披薩總共", total, "元")
print("每個朋友分到的價值大約是", value_each, "元")

二、運算賦值:邊算邊存

在實際寫程式時,常常需要「更新」變數的值。
Python 提供了 運算賦值 這個超好用的語法,
讓你可以在運算的同時,直接把結果指定回去。

符號 說明 範例 結果
= 基本指定 x = 5 x 變成 5
+= 加法並指定 x = 5; x += 3 x = 8
-= 減法並指定 x = 5; x -= 2 x = 3
*= 乘法並指定 x = 5; x *= 4 x = 20
/= 除法並指定 x = 20; x /= 5 x = 4.0
//= 整除並指定 x = 20; x //= 6 x = 3
%= 取餘數並指定 x = 20; x %= 6 x = 2
**= 次方並指定 x = 2; x **= 3 x = 8

💭這邊來個心得分享~

我自己會把賦值的寫法當作是一種「簡寫」的概念
如果初學者還不太適應這種寫法的話,也可以先慢慢把完整的算式打出來喔!

既然這邊有介紹到賦值運算
那我們就來試試看用賦值運算的方式來完成下面的小練習吧!

練習題 2:遊戲角色升級 ⚔️

假設你是一個 RPG 遊戲角色,初始經驗值為 0。接著:

  1. 打敗小怪,+50 經驗值
  2. 打敗 BOSS,+200 經驗值
  3. 吃了懲罰藥水,-30 經驗值
  4. 再次挑戰 BOSS,經驗值 × 2
  5. 輸出最後的經驗值
exp = 0
exp += 50      # 打敗小怪 exp=exp+50
exp += 200     # 打敗 BOSS exp=exp+200
exp -= 30      # 吃懲罰藥水 exp=exp-30
exp *= 2       # 經驗值翻倍 exp=exp*2

print("你現在的經驗值是:", exp)

三、字串運算:文字也能玩數學?

Python 不只能拿來算數學,也能讓文字玩出花樣!
我們可以把「字串」(string) 當作一種資料,透過運算子來做
串接 (concatenation)複製 (repetition)
不過要小心,字串跟數字是不同的型別,兩個要混用時,必須先「轉換」才行。

(1) 文字串接:+

字串之間可以用 + 號把它們「黏」(也可以看作成合併)在一起。

title = '先生'
lastName = '鄭'
greet = '您好'
print(lastName + title + greet)

(2) 文字複製:*

數字不能拿來直接跟字串加,但可以用 * 讓字串「重複」好幾次。

thank = "感謝"
very = "非常"
end = "!"
print(very * 3 + thank + end)

小心‼️不同型別不能直接相加

Python 不允許「數字」和「字串」直接相加,否則會報錯。
但我們可以先做 型別轉換,再進行運算。

x = 123
y = '456'

print(str(x) + " + " + y +
      " = " +
      str(x + int(y)))

可以看到執行後的結果如下:

123 + 456 = 579

規則很簡單:

  • 數字 → 用 str() 轉成字串才能串接
  • 字串 → 用 int()float() 轉成數字才能計算

這邊複習一下昨天教的「資料型別轉換」:
在 Python 裡,變數有不同的型別:
整數 (int)、浮點數 (float)、字串 (str)等
但是不同型別的資料,不能隨便「混搭」。

例如:數字不能直接跟字串相加,這會報錯。

常見的型別轉換函式

函式 說明 範例
int(x) 將資料轉成整數 int("123") → 123
float(x) 將資料轉成浮點數 float("3.14") → 3.14
str(x) 將資料轉成字串 str(456) → "456"

範例 1:字串變數轉成數字

a = "100"
b = "200"
print(a + b)        # 字串相加 → "100200"
print(int(a) + int(b))  # 數字相加 → 300

範例 2:數字轉成字串

x = 123
y = 456
print("相加結果是:" + str(x + y))

四、格式化輸出:f-string

除了用 + 串接字串,其實還有更好用的方式:f-string。

  • string 是 Python 3.6 以後才引進的功能,它的最大優點就是:
  • 不用一直轉型str()int() 不用再手動轉換)
  • 可讀性高,變數直接放大括號 {} 內就能顯示
  • 可以加格式控制(小數點位數、字元寬度、對齊方式等等)

(1)基本用法:

在字串前面加 f,然後把變數寫在 {} 裡面:

name = "小明"
score = 95
print(f"{name} 考了 {score} 分,好棒!")

輸出:

小明 考了 95 分,好棒!

相比之下,如果用 + 拼接:

print(name + " 考了 " + str(score) + " 分,好棒!")

是不是很囉嗦?這就是 f-string 的魅力!
不過也有些初學者還是希望一開始先利用串接的方式比較直覺~
讀者可以自行選擇!多會一個工具,肯定不是一件壞事!

(2)數字格式化

如果你要處理小數,f-string 可以直接控制顯示的位數。

pi = 3.1415926535
print(f"圓周率取到小數點後兩位是 {pi:.2f}")

輸出:

圓周率取到小數點後兩位是 3.14
  • .2f = 固定顯示 2 位小數
  • .0f = 四捨五入到整數

(3)對齊與寬度

在排版表格、清單的時候,f-string 也能幫你對齊:

print(f"{'商品':<10}{'價格':>6}")
print(f"{'蘋果':<10}{30:>6}")
print(f"{'香蕉':<10}{5:>6}")

輸出結果:

商品            價格
蘋果             30
香蕉              5
  • <10 表示靠左,總共保留 10 個字元寬度
  • >6 表示靠右,總共保留 6 個字元寬度

範例:

試著寫一個小程式,讓使用者輸入商品名稱、單價與數量,
然後用 f-string 自動計算總價,最後把結果輸出。

item = input("請輸入商品名稱:")
price = int(input("請輸入單價:"))
qty = int(input("請輸入數量:"))

total = price * qty

print(f"你買了 {qty} 個 {item},每個 {price} 元,總共花了 {total} 元。")

執行後:(假設輸入蘋果、25、4)

你買了 4 個 蘋果,每個 25 元,總共花了 100 元。

今日結語

今天的內容主要帶領大家熟悉了 Python 中最常見的基礎運算,包括:

  • 數值運算:加、減、乘、除與整數除法等基本操作。
  • 賦值運算:透過運算子將結果保存,讓程式具備「記憶」功能。
  • 字串運算:進行文字的串接與處理,讓輸出更具彈性。
  • 資料型別轉換:在不同型別間靈活切換,避免常見錯誤。

這些看似簡單的操作,其實構成了往後所有程式設計的基礎。
若能熟練掌握,將大幅降低學習進階主題時的挫折感。

換句話說,
今天我們已經為未來的程式邏輯與專案應用,打下了一個堅實的地基。

明日預告

看到這邊的你,辛苦啦!明天,我們要跨入程式設計的另一個核心:

比較運算子邏輯運算子

它們就像是程式世界的「真假裁判」,能幫你判斷:

  • 這個數字是不是比那個大?
  • 兩個條件是不是同時成立?
  • 某個狀況是不是不符合?

如果說今天的主題是「如何進行計算與資料處理」,那麼明天的重點就是「如何做出判斷與推理」。
學會這一塊之後,程式將不再只是單純的計算機,而是能根據條件做出不同反應,邁向真正的「智慧化」程式設計!

那麼我們就明天見囉!如果有任何問題,歡迎在底下留言~
若覺得內容還不錯的話!也可以幫我點個like,你們的支持也是我最大的動力~


上一篇
【Day5】程式會跟你對話啦:輸入 input() 與資料型別轉換
下一篇
【Day7】真假大對決!程式怎麼判斷世界?:關係運算子 & 邏輯運算
系列文
Python 小白的逆襲:30 天從零到能教人的精華筆記,寫給迷惘的你與當年的我自己!8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言