所有入門單元免費開放 · 課程內容持續更新中

變數、型別與輸入輸出

學會用變數把資料記下來,分清楚文字和數字的差別,並用 input 和 print 讓程式和你對話。

第 1.3 堂約 14 分鐘

上一堂的程式,少了什麼?

還記得上一堂的 hello.py 嗎?它每次執行都印出一模一樣的字。這樣的程式沒辦法「記住」任何東西,也沒辦法依照你的輸入做出不同反應。

這堂課要補上兩塊拼圖:變數讓程式能記住資料,輸入輸出讓程式能和你對話。學完之後,你就能寫出「問你今天花多少錢,再幫你算總和」的程式。

變數:貼了名字的盒子

把變數想成一個貼了標籤的盒子。你把資料放進去,之後只要喊標籤的名字,就能拿到裡面的東西。

lunch = 85
drink = 45
total = lunch + drink
print(total)
130

這裡的 = 不是數學的「等於」,而是「把右邊的值放進左邊的盒子」。所以 total = lunch + drink 的意思是:先算出 lunch + drink,再把結果放進 total。

三個貼著標籤的盒子 lunch、drink、total,分別裝著 85、45 和 130,說明等號是把右邊的值放進左邊的盒子

等號的方向是「右邊放進左邊」。

取名字的小規則

  • 可以用英文字母、數字和底線,但不能用數字開頭:price2 可以,2price 不行。
  • 大小寫有差:Lunch 和 lunch 是兩個不同的盒子。
  • 取有意義的名字。lunch_price 比 a 好懂太多,三個月後的你會感謝現在的你。

型別:資料也分種類

盒子裡裝的東西有不同種類,Python 叫它「型別」。最常用的四種:

型別 名稱 例子 生活中的例子
int 整數 85 便當價格、捷運站數
float 小數 36.5 體溫、匯率
str 字串 "雞腿便當" 品項名稱、店名
bool 布林 True、False 有沒有開發票

字串要用引號包起來,單引號或雙引號都可以。

型別很重要,因為它決定了資料能怎麼運算。看看這個例子:

print(85 + 45)
print("85" + "45")
130
8545

數字相加是算術,字串相加是「接起來」。同樣是 +,結果完全不同。想知道某個值是什麼型別,可以用 type() 查:

print(type(85))
print(type("85"))
<class 'int'>
<class 'str'>

輸入與輸出:讓程式和你對話

print() 把東西印到螢幕上,input() 則會停下來等你打字,按 Enter 之後把你打的內容交給程式。

name = input("請問你的名字?")
print("你好," + name)

新手最常卡住的地方

試試看這段程式,輸入 85 和 45:

lunch = input("午餐花多少?")
drink = input("飲料花多少?")
print(lunch + drink)
午餐花多少?85
飲料花多少?45
8545

怎麼不是 130?因為 input() 拿到的永遠是字串。你打的 85 在程式眼中是文字 "85",兩段文字接在一起就變成 "8545"。

示意圖:使用者輸入 85,input 交給程式的是字串 “85”,用 int 轉換後才變成可以計算的數字 85

解法是先用 int()(整數)或 float()(小數)轉換:

lunch = int(input("午餐花多少?"))
drink = int(input("飲料花多少?"))
total = lunch + drink
print(f"今天一共花了 {total} 元")
午餐花多少?85
飲料花多少?45
今天一共花了 130 元

最後一行用的是 f-string:在字串前面加一個 f,就能用大括號把變數直接放進句子裡。這比用 + 接字串方便很多,也不用擔心型別不合。

讓 AI 當你的家教

讀到這裡,你可能還有點模糊,這很正常。概念需要多看幾個例子才會變清楚,這正是 AI 擅長的事。

可以這樣問 Claude

我剛開始學 Python,正在學變數和型別。請用台灣日常生活的例子(例如記帳、搭捷運、買便當),出 3 題很簡單的練習題,每題讓我預測一段 3 到 5 行程式的輸出。先不要給答案,等我回答之後再幫我批改並解釋。

讓 AI 出題、你先想答案、再讓它批改,比直接看解答有效得多。重點是你要先動腦。

行動練習

建立一個新檔案 daily.py,寫一支程式:

  1. 依序問你今天早餐、午餐、晚餐各花多少錢(用 input(),記得轉成數字)。
  2. 算出總和。
  3. 用 f-string 印出一句話,例如「今天三餐一共花了 245 元」。

加分題:再多印一行「照今天的花法,一個月 30 天大約會花多少」。想想看,這一行需要新的 input() 嗎?

讀完了嗎?

標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。

卡住了?讓 AI 當你的家教複製這段提問範本,貼到 Claude 或其他 AI 工具,再補上你卡住的地方。

留言與討論

卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。

留言區即將開放。現在可以先到 GitHub 討論區 發問,或看看 交流頁 的其他管道。