寫在最前面的學習、開發環境介紹
為什麼要學程式?
在正式開始之前,先讓我說一個不太光彩的故事。
我當年第一次學程式的動機不太正當:是為了零用錢 ╮(╯_╰)╭。事情是這樣的:我爸某天突然跟我說:「你如果學會寫程式,我就給你零用錢。」身為一個對金錢有高度敏感性的小屁孩,我二話不說就答應了。當時的我連程式是什麼都搞不太清楚,滿腦子只想著:太好了,有錢拿!
所以我的程式之路,起點是「為了錢」。聽起來很俗對吧?但你猜怎麼著——學會之後,真的開啟了一個全新的世界。
我發現,原來我可以自己寫小工具來幫我算數學作業要花多少時間(雖然最後還是要自己寫 _(´ཀ`」 ∠)_ );原來我可以寫一個程式,讓電腦自動幫我整理資料;原來那些看起來超酷的網站、App、遊戲,背後全都是「一行一行程式碼」堆出來的。如果要用一個比喻來形容這種感覺:你一直以為電腦是一個黑盒子,突然有人把蓋子打開,讓你看到裡面的齒輪怎麼轉的。從那一刻起,你看世界的方式就不一樣了。
你不需要像我一樣為了零用錢才來學程式(當然如果你爸媽也願意出錢,那我很替你開心),但你會發現,程式能幫你做到很多以前想都沒想過的事。不管是自動化那些無聊的重複工作、做出屬於自己的小作品、還是單純想搞懂「這個 App 到底怎麼運作的」,程式設計都能帶你到那裡。
這一章,我們就從最簡單的開始:讓電腦聽你的話,也讓電腦開口說話。

📷 圖 1:學生對電腦大喊幫我寫作業,電腦回覆 0101 的四格漫畫(AI 製圖)
💡 📋 學習目標
看完這一節,希望你將能夠:
- 了解什麼是程式語言(Programming Language),以及它為什麼存在
- 認識我們的 Judge 系統怎麼用
- 學會用
print()讓電腦「開口說話」 - 學會用
input()讓電腦「聽你說話」 - 完成你人生中的第一個 Judge 題目 (ノ◕ヮ◕)ノ*:・゚✧
目標列好了,接下來我們就一個一個解鎖。先從最根本的問題開始。
程式語言是什麼?為什麼需要它?
帶著這些目標,為了理解程式語言扮演的角色,我們先想一個場景:
你去日本旅遊,想在餐廳點一碗拉麵。但你不會日文,店員不會中文。你們大眼瞪小眼,比手畫腳了半天。最後你掏出手機打開 Google 翻譯,打中文、翻日文,店員才聽懂。
而程式語言(Programming Language)就是你跟電腦之間的「Google 翻譯」。
(只是這個翻譯官比較嚴格,一個標點符號打錯都不行 ʅ(´◔౪◔)ʃ )
雖然很嚴格,但別擔心。電腦的「母語」是 0 跟 1,也就是所謂的機器語言(Machine Language)。但要人類用 0 和 1 來寫程式,大概寫三行就會發瘋。所以聰明的前輩們發明了各種程式語言,讓我們可以用「接近人話」的方式寫指令,再由一個叫做編譯器(Compiler)或直譯器(Interpreter)的翻譯官,把我們的指令翻成電腦聽得懂的 0 跟 1。
在這個系列中,我們要學的 Python,就是目前全世界最多人用、最適合初學者的程式語言之一。它最大的優點就是:語法很像英文,長得很好讀。
「好的,你說的我都懂。但我要在哪裡寫程式?」
好問題。你不需要安裝任何東西,因為我們有一個超方便的線上系統。
編譯器(Compiler) vs 直譯器(Interpreter)
兩者都是翻譯官,差別在翻譯方式:
- 編譯器:像翻譯一整本書:先把你的程式全部翻完,產生一個可以獨立執行的檔案,然後才開始跑。C 語言就是用這種方式。
- 直譯器:像現場同步口譯:你說一句,它翻一句,邊翻邊執行。Python 就是這種。
Python 用直譯器的好處是:寫一行就能馬上看到結果,不用等整份程式翻譯完。對初學者來說,這代表你可以一邊寫、一邊試、一邊改,非常友善。
現在你知道程式語言是什麼、為什麼我們選 Python 了。接下來的問題是:寫好的程式要去哪裡測試、怎麼知道自己寫對了?
認識我們的 Judge 系統
通常我們檢驗一個人對於程式設計、運用程式來解決資料運算問題的能力,較普遍的方法是用解題的方式考試來進行。我們也稱為競賽程式(競程)。
而競賽程式的觀念會貫穿整門課,非常重要:
競程基本邏輯
IPO 思維:Input(輸入)→ Process(處理)→ Output(輸出)
幾乎所有的競賽程式題目都是這個模式:
- Input:題目給你一些資料(像是一個數字、一段文字)
- Process:你的程式對資料做處理(計算、判斷、排序⋯⋯)
- Output:你的程式把結果印出來

📷 圖 2:IPO 流程概念圖,輸入箭頭指向處理再指向輸出(AI 製圖)
而我們的 Judge 系統,就是一台「自動閱卷機」:
- 你把程式碼丟進去
- Judge 會用好幾組測試資料(Test Case)來跑你的程式
- 每一組測資,Judge 會比對你的輸出跟正確答案
- 全部通過 → AC(Accepted,通過)(๑•̀ㅂ•́)و✧
- 有一組錯了 → WA(Wrong Answer,答案錯誤)
知道了 Judge 的判斷邏輯,來看看實際怎麼操作:
怎麼使用 Judge?
Step 1:進入題目頁面,你會看到題目的描述、輸入輸出說明、還有範例。
Step 2:在下方的程式碼編輯器中寫你的 Python 程式。
Step 3:點「提交」按鈕。
Step 4:等 Judge 跑完,看看結果是 AC 還是 WA。
就這樣。沒有更複雜的了。
(如果你第一次拿到 WA 不要慌,我到現在寫程式還是三不五時 WA,這很正常 (´;ω;`) )
「等等,你剛剛說 Judge 會比對我的『輸出』跟正確答案,但我連怎麼讓程式輸出東西都不會啊 Σ(゚Д゚;≡;゚д゚) 」
別急,這就是接下來要學的。你已經知道考場在哪、規則是什麼了。現在來學你的第一招:讓電腦開口說話。
print() — 讓電腦開口說話
電腦其實很聰明,同時也很笨。
為什麼這麼說?因為「電腦」的英文叫 computer,拆開來看就是 compute(計算)加上 -er(做這件事的東西)。沒錯,電腦的本質就是一台超級強大的計算機。
為什麼先解釋「電腦就是計算機呢?」那就得問你一個問題:你用過計算機吧?想像一下:你在計算機上按了 3 × 5,結果還沒按 =,計算機就自動跳出 15 了——你會不會嚇一跳?
(啥?你真的遇過?那個不是人工智慧,是撞到阿飄了吧 (o゚ロ゚)┌┛ )
沒錯!計算機不會自作主張,電腦也是。你要它做什麼,就得一步一步、清清楚楚地告訴它。你沒叫它印出答案,它就算完之後默默收工,什麼都不說。
就像你叫同學幫你算數學,他算完了,然後默默把計算紙收進書包,頭也不回地走了 ╮(╯∀╰)╭
「欸!答案呢!!」
print() 就是強迫電腦「開口」的指令。如果覺得太抽象,用一個生活中的比喻來想:你可以把它想成電腦的嘴巴,或是 LINE 上面的「傳送」按鈕。
第一步:印出一段文字
知道 print() 是什麼了,來動手試試。先從最簡單的開始:讓電腦印出一句你指定的話:
print("Hello")按下執行,螢幕上會出現:
Hello就這樣!你的電腦剛才「說了一句話」。
⚠️ 注意
"Hello" 外面的引號(雙引號 " 或單引號 ' 都可以)是必要的。因為電腦需要靠引號來分辨:這是「一段文字」,還是「一個指令或資料儲存空間的名稱」。
print("Hello") # ✅ 電腦知道這是文字
print(Hello) # ❌ 電腦以為 Hello 是一個指令或是資料儲存空間的名稱,然後找不到就會報錯想想英文文法
英文裡,引號一定要成對:開頭用 " 結尾就要用 ",不能一頭雙引號、另一頭單引號。Python 也一樣!
print("Hello") # ✅ 雙引號配雙引號
print('Hello') # ✅ 單引號配單引號
print("Hello') # ❌ SyntaxError!開雙關單,Python 看不懂引號搞定了,接下來玩點不一樣的。
第二步:印出計算結果
你已經會讓電腦「說」一段固定的話了。但如果 print() 只能印你寫死的東西,那跟在螢幕上貼一張便利貼有什麼差別?
print() 不只能印文字,還能印數字和計算結果:
print(1 + 1)輸出:
2等等,print(1 + 1) 的時候電腦到底做了什麼?讓我們慢動作回放:
- Python 看到
print(...),知道你要它印東西 - 但括號裡是
1 + 1,不是一個現成的值,所以 Python 先算括號裡的:1 + 1→2 - 算完了,Python 把結果
2交給print(),印出2
記住這個口訣:由內而外。Python 碰到括號,一定先搞定裡面的東西,再把結果往外傳。這個規則非常重要,下一節學到 int(input()) 的時候,也是同一個道理。
Python 3 的 print 一定要加括號
如果你在網路上看到 print "Hello" 這種寫法,那是 Python 2 的語法,在 Python 3 會直接報錯。我們這門課全程使用 Python 3,所以請永遠記得加括號:print("Hello")。
印一個值沒問題了,那如果想一次印好幾樣呢?
第三步:印出多個東西
印一個東西搞定了。但如果我想同時印出好幾樣東西呢?比如說,名字和成績一起印?
你可以在 print() 裡面用逗號隔開多個東西,它們會用空格串在一起印出來:
print("你好", "世界")輸出:
你好 世界逗號會自動補空格
用逗號隔開的多個值,print() 預設會在它們之間插入一個空格。如果你不想要空格,後面會學到 sep 參數可以控制分隔符號,現在先知道這個預設行為就好。
「老師,所以 print() 就是把括號裡的東西顯示在螢幕上?」
沒錯,就是這麼單純。print = 印出來。學完這一招,你已經能讓電腦「說話」了。

📷 圖 3:電腦第一次開口說話,學生驚喜的四格漫畫(AI 製圖)
到目前為止,你已經學會讓電腦「開口說話」了。但你有沒有發現一個問題?不管你跑幾次程式,它都只會講一樣的話,因為它根本不知道你是誰、你想做什麼。
原因很簡單:它還不會「聽」。如果程式能接收你打的字,根據你的回答做出不同的反應,那才叫真正的互動。
input() — 讓電腦聽你說話
如果程式只能自己跑自己的,那跟播影片有什麼差別?
真正有用的程式,要能「接收使用者的資料」,然後根據資料做事。這就是 input() 的用途:它會讓程式暫停,等使用者輸入一行文字,然後把那行文字「接住」。
聽起來有點抽象?其實你每天都在用類似的東西。你可以把 input() 想像成 Google 搜尋框:它就是一個空白欄位,等你打字,按 Enter 之後,程式才繼續往下跑。
第一步:讀取一行輸入
最基本的用法長這樣:
name = input()當程式跑到這一行,它會「暫停」,等你在鍵盤上打一段文字然後按 Enter。你輸入的東西會被存進 name 這個存放資料的箱子裡面。
至於這個存放箱子是什麼?我們下一節會正式介紹。
但光是讀進來還不夠,我們得把它印出來才看得到效果。
第二步:把讀到的東西印出來
把 input() 和 print() 組合在一起:
name = input()
print("Hello,", name)假設你輸入了 Alice,輸出會是:
Hello, Alice看到了嗎?程式先用 input() 「聽」你說了什麼(Alice),然後用 print() 把它「說」出來。
這就是 I/O(Input/Output,輸入/輸出)的基本功:一進一出,一問一答。
超級重要 ⚠️
input() 讀進來的東西,永遠都是文字(字串)——就算你輸入的是 123,它讀到的也不是數字 123,而是文字 "123"。
這個看似無害的小細節,會在下一節引發一場「型別大爆炸」。先記住就好 σ(´∀`*)

📷 圖 4:電腦問名字學生回答的四格漫畫(AI 製圖)
先別擔心那場爆炸——好了,你現在既能讓電腦說話(print()),也能讓它聽話(input())。來試試把這兩招組合起來,解你的第一道 Judge 題目!
Judge 解題實戰:哈囉,世界!
這是你人生中的第一道程式題。深呼吸,我們一步一步來。
題目說明
- Input:一行輸入,一個字串 S(使用者的名字)
- Output:輸出
Hello, S(注意:逗號後有空格)
範例
| Input | Output |
|---|---|
Alice | Hello, Alice |
Bob | Hello, Bob |
老師的建議
先試著往前翻找資訊,自己完成挑戰!
若真的卡關太久,再往下看詳解吧!
先別急著寫程式,我們照 IPO 的思路拆解這題:
Step 1:分析 IPO
- I(Input):讀取一個名字
- P(Process):把名字跟固定文字拼起來
- O(Output):印出
Hello, 名字
分析完了,現在把每一步翻譯成 Python:
Step 2:寫出每一行程式碼
根據上面的分析,程式碼可以這樣寫:
# I:讀取輸入
name = input()
# P + O:組合文字並印出
print("Hello,", name)讓我們逐行解讀:
name = input()— 讀一行輸入,存進nameprint("Hello,", name)— 用逗號隔開兩個東西,print()會自動在中間補一個空格,所以輸出就是Hello, Alice
程式寫好了,送去 Judge 驗證看看:
Step 3:在 Judge 上測試
把上面的程式碼貼進 Judge 的編輯器,按下「提交」。如果看到 AC(Accepted)——恭喜你,你剛剛完成了人生中的第一道程式題!
如果拿到 WA 也別慌,來看看最常見的出錯原因:
常見錯誤排查
❌
"Hello,"裡面忘記逗號pythonprint("Hello", name) # 輸出:Hello Alice → WA!正確的是
"Hello,":少了這個逗號,輸出就會變成Hello Alice,跟題目要求的Hello, Alice不一樣。
📌 核心觀念
Judge 的比對是完全一模一樣。大小寫、空格、標點符號,一個都不能錯。養成「仔細看輸出格式」的習慣,會幫你省下非常多 WA 的痛苦。
恭喜你完成了第一道 Judge 題目!接下來再多練幾題,把 print() 和 input() 的手感鞏固起來。
自己動手試試!
覺得太簡單?很好,那代表你學會了 ✧。٩(ˊᗜˋ)و✧*。
趁這股氣勢,下面這兩題不給解答,靠你自己。記住 IPO 思維:先想 Input 是什麼、Process 要做什麼、Output 長什麼樣。
類題一:自我介紹產生器
讀入名字和年齡,按照指定格式輸出一段英文自我介紹。
💡 提示:你需要用兩次 input() 來分別讀取名字和年齡,然後在 print() 裡面用逗號把它們跟固定文字隔開就好。
再來一題,這次換個花樣:
類題二:鸚鵡學舌
讀入一行文字,把它連續印三次。
💡 提示:你可以用三次 print() 嗎?當然可以。(後面我們會學更聰明的做法,但現在先用笨方法就好!)
到這裡,1-1 的內容就全部結束了。讓我們快速回顧一下重點:
本節小結
🎯 重點回顧:
- 程式語言是人類跟電腦溝通的翻譯工具,Python 是其中最親民的一種
- IPO 思維(Input → Process → Output)是解題的萬用框架
print()讓電腦把結果顯示在螢幕上input()讓程式暫停、等使用者輸入一行資料- Judge 會用測試資料自動批改你的程式,全對就是 AC
📝下一節:「變數、數字與文字」:
我們要來解決一個問題:如果你有 100 個同學的名字要記住,你要怎麼讓電腦記得住?