昨天我們成功打開了 Jupyter Notebook,並且寫下了人生第一行Python code,算是正式跟這條蛇打了招呼。
那麼,今天要來介紹的主角是 ——變數(Variable)
print("2025 IThome鐵人競賽")
但問題來了,如果我想要把「年份」存起來呢?如果我想要記住「活動名稱」呢?總不能每次都硬打吧!
假設明年2026舉辦IThome鐵人競賽的話,不就要改一大堆地方?
這時候,程式語言給我們一個神奇的「櫃子」,叫做 變數(Variable)。
把「變數」想像成一個貼了標籤的櫃子(或是抽屜之類的):
name = "小明"
age = 25
這代表:
name
的櫃子,裡面放著字串 "小明"
age
的櫃子,裡面放著數字 25
之後只要想用,直接叫名字就好:
print("姓名",name)
print("年齡",age)
執行之後,就會看到下方的輸出結果!
姓名:小明
年齡:25
我額外製作投影片來說明變數的概念~對於初學者來說可能會更清楚一點!!
你可能會看到這樣的程式碼:
x = 10
y = 5
z = x + y
print(z)
心裡可能會想:「等號不是應該代表『兩邊相等』嗎?為什麼程式裡好像是『把右邊放進左邊』?」
沒錯!這就是初學者最容易踩的地雷之一。
Python 裡的 = 並不是數學裡的等號,它是一個 指示電腦:把右邊的值放到左邊變數裡 的符號,
我們叫它 賦值符號(assignment)。
左邊:櫃子(變數),你想把東西放進去
右邊:東西(資料、計算結果),你要放進去的內容
= 就是把右邊的東西「放進左邊的櫃子」
age = 25
左邊的 age → 這是你要放東西的櫃子
右邊的 25 → 這是你要放進去的東西
= → 幫你把 25 放進 age 裡
1.不要把它跟數學等號搞混
x = x + 1 # 正確,但初學者會疑惑「x怎麼等於 x+1?」
這行程式的意思是:先算右邊 x+1 的值,再把結果放回 x 裡
並不是說 x 真的等於 x+1,Python 先計算,再替換原本的 x
2.賦值右邊可以是運算結果
length = 5
width = 3
area = length * width
print(area) # 15
3.變數可覆蓋(更新)
score = 80
print(score) # 80
score = 90 # 覆蓋舊值
print(score) # 90
在 Python 裡,變數名字不能隨便亂取,否則會出錯。基本規則有:
✅ 可以:
❌ 不可以:
for
, while
, class
等)💡這邊幫各位整理了一些內建關鍵字,若要命名變數名稱時,記得要避開呦!
and | as | assert |
---|---|---|
break | class | continue |
def | del | except |
else | elif | finally |
for | from | False |
global | if | import |
in | is | lambda |
not | None | nonlocal |
or | pass | return |
raise | try | True |
with | while | yield |
我們來看一下有關命名規則的範例:
student_name = "小明" # ✅ 合法
age2 = 18 # ✅ 合法
2nd_age = 20 # ❌ 不合法,數字不能開頭
my name = "小華" # ❌ 不合法,不能有空白
接下來要來說一個很重要的觀念,很多初學者可能會忽略的部分!
其實變數裡存的資料是可以不斷被更新的呦!
變數的內容不是「一次性」的,而是可以被更新的。
就像一個櫃子,你今天放了一件外套,明天完全可以換成鞋子,後天再換成帽子。
來看看這個例子:
price = 250 # 一開始,櫃子裡放 250
price = 199 # 後來,把櫃子裡的東西換成 199
price = 150.99 # 再後來,換成小數 150.99
print(price)
執行後,會看到輸出結果是:
150.99
Python 只會記得最後一次你放進去的東西。
前面放進去的 250
和 199
都被覆蓋掉了,最後只剩下 150.99
。
這個動作就叫做「變數的重新賦值」或「迭代」。
它讓程式可以隨著邏輯和流程,不斷更新資料,而不是固定死死的。
接下來,我們要認識放進櫃子的東西可以有哪些種類。
在 Python 世界裡,最常見的資料型別有:
10
、3
、2025
3.14
、150.99
、0.5
"Hello"
、"Python"
、"2025IThome鐵人賽 我要成功完賽!"
True
或 False
,代表對或錯這些資料型別就像是不同的物品,你可以放進櫃子裡,然後在需要的時候拿出來用。
有時候你可能會忘記,自己放進櫃子(變數)裡的,到底是數字、文字,還是布林值?
別擔心,Python 幫你準備了一個偵探工具 —— type()
函式。
price = 150.99
name = "Python"
is_hot = True
print(type(price))
print(type(name))
print(type(is_hot))
執行結果:
<class 'float'>
<class 'str'>
<class 'bool'>
你會發現,Python 很老實地告訴你:
price
是 浮點數(float)
name
是 字串(str)
is_hot
是 布林值(bool)
從今天開始,如果你搞不清楚變數的型別,就呼叫 type()
來確認吧!
你可能會想:「我自己命名變數,應該很清楚自己放了什麼東西吧?」
沒錯,如果程式很短、都是你一個人寫,通常問題不大。但現實世界的程式可不是這樣:
1.程式專案很大
有時候一個程式檔案就上千行,變數遍佈各個函式、類別、甚至不同模組。
你不可能每次都靠記憶去判斷它們的型別。
2.多人合作
在團隊專案裡,你可能要維護別人寫的程式碼。變數命名風格不一定跟你一樣,光靠名字無法完全知道資料型態。
例如看到 data,它可能是整數、浮點數、字串,甚至是一個列表或字典。
3.程式邏輯可能改變型別
有些變數的值會在程式運行時改變型別,例如從數字變成字串、從字串變成列表。
如果直接使用而不確認型別,容易出錯。
所以,type() 就像一個變數偵探,可以快速告訴你「這個變數裡面到底裝的是什麼」,幫助你避免出現奇怪的錯誤,也方便你理解、維護程式碼。
今天,我們學會了:
type()
就是檢查櫃子裡放了什麼的好幫手到這裡,你已經能駕馭一條最基礎的小蛇:它不只會記住你的東西,還能告訴你「這東西到底是什麼類型」。
是不是比你想像的更溫馴?🐍✨(應該有吧!!)
明天,我們要讓蛇第一次「開口」和你互動!
透過 input()
,程式可以主動問你問題,而你輸入的答案又能被轉換成數字、字串,甚至拿來做運算。
這會是你從「單向輸出」進入「雙向對話」的第一步。
那今天的練功日就結束囉!辛苦啦!我們明天見~
如果有任何問題,歡迎在底下留言~
若覺得內容還不錯的話!也可以幫我點個like,你們的支持也是我最大的動力~