昨天我們教了 input()
,總算讓蛇會跟你「講話」了。
但一隻真正強大的程式小蛇,不能只會聊天,它還要會 數學運算、狀態更新、以及 玩轉文字。
今天就是 Python 的 運算大補帖!
我們會學到:
+=
、=
等超常用的縮寫而這些功能,就是你日後做 計算機、記帳程式 等小專案的基礎。
準備好了嗎?讓我們開始今天的修煉吧 !!
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 |
規則很簡單:
一起來看一下下面這個小練習(可以先在心中算一下答案喔):
y = (2 + 3) * 4 ** 2
print(y)
計算步驟:
(2 + 3) = 5
4 ** 2 = 16
5 * 16 = 80
有和你心中想的答案一樣嗎?有的話恭喜你掌握了這部分的概念喔!
接下來我們來現學現賣,來個有關運算類的簡單的小練習吧!
小明買了一個超大披薩,切成 8 片。他想要分給 3 個朋友(不包括自己):
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 |
💭這邊來個心得分享~
我自己會把賦值的寫法當作是一種「簡寫」的概念
如果初學者還不太適應這種寫法的話,也可以先慢慢把完整的算式打出來喔!
既然這邊有介紹到賦值運算,
那我們就來試試看用賦值運算的方式來完成下面的小練習吧!
假設你是一個 RPG 遊戲角色,初始經驗值為 0。接著:
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)。
不過要小心,字串跟數字是不同的型別,兩個要混用時,必須先「轉換」才行。
+
字串之間可以用 +
號把它們「黏」(也可以看作成合併)在一起。
title = '先生'
lastName = '鄭'
greet = '您好'
print(lastName + title + greet)
*
數字不能拿來直接跟字串加,但可以用 *
讓字串「重複」好幾次。
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。
str()
、int()
不用再手動轉換){}
內就能顯示在字串前面加 f
,然後把變數寫在 {}
裡面:
name = "小明"
score = 95
print(f"{name} 考了 {score} 分,好棒!")
輸出:
小明 考了 95 分,好棒!
相比之下,如果用 + 拼接:
print(name + " 考了 " + str(score) + " 分,好棒!")
是不是很囉嗦?這就是 f-string 的魅力!
不過也有些初學者還是希望一開始先利用串接的方式比較直覺~
讀者可以自行選擇!多會一個工具,肯定不是一件壞事!
如果你要處理小數,f-string 可以直接控制顯示的位數。
pi = 3.1415926535
print(f"圓周率取到小數點後兩位是 {pi:.2f}")
輸出:
圓周率取到小數點後兩位是 3.14
.2f
= 固定顯示 2 位小數.0f
= 四捨五入到整數在排版表格、清單的時候,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,你們的支持也是我最大的動力~