Semorphe

印出一句話

讓電腦說出你要它說的話。 · ⏱ 約 20 分鐘

你會學到三件事

  1. 怎麼叫電腦印一句話出來
  2. 引號是文字的邊界
  3. 程式由上往下一行一行跑

開始之前

⚠️ 右下角的目標選 Python。

打開編輯器,畫面上是空的。空的程式什麼都不做——按執行,下面的主控台是空的。

空的不代表壞掉,代表你還沒叫它做事。

這個工具會怎麼跟你說話

⚠️ 這一段講一次就好,後面的課不會再提。

你會看到 那是在說
積木上一個琥珀色的虛線框 這一塊這次沒有被跑到——是故意的嗎?
按執行前先問你「猜猜看」 猜完再揭曉——⚠️ 猜錯比猜對值錢,那是你發現自己想錯的地方
主控台說「跟這一課要的不一樣」+兩欄比對 左邊是你印的,右邊是要的
題目那一格的「2/3」 這一課有三題,你過了兩題

🟢 而沒有分數、沒有等級、沒有排名。這個工具只會說那件事怎麼樣了, 不會說你怎麼樣。

🟢 先把編輯器打開,跟著下面一起做。 讀完再打開的話,下面每一段你都得先記起來,而那不是這個工具要你做的事。

到編輯器打開這一課:跟著做

一、print

照著打上這一行:

1print("Hello!")
"Hello!"印出1

按執行,主控台會出現:

Hello!

拆開來看:

這一段 意思
print 「印出去」
( ) 要印的東西放在括號裡
"Hello!" 要印的內容

⚠️ 括號和引號都要成對。 少一個右括號,Python 會以為這一行還沒寫完, 而錯誤訊息通常指向下一行。這是最常見的一個困惑。

二、引號是文字的邊界

"Hello!" 有引號,所以電腦原封不動印出 Hello!。

沒有引號的話,電腦會以為 Hello 是一個你先前取好的名字(下一課會學), 然後找不到它,於是報 NameError。

有引號 = 一段文字;沒引號 = 一個名字。 這條規則整個課程都用得到。

單引號 'Hello!' 和雙引號 "Hello!" 在 Python 裡完全一樣,挑一種用就好。 而句子裡有引號的時候,用另一種可以省事:

🔎 這一段是試一下——打了看結果就好,不要留在程式裡。

1print("他說:'好'")
"他說:'好'"印出1

三、一行一行往下跑

照著打上這兩行,它會一行接一行跑下去:

1print("Hello!")2print("我在學 Python")
"Hello!""我在學 Python"印出印出12

輸出:

Hello!
我在學 Python

兩行、兩句、依序。print 自己會換行,不用另外做什麼。

⚠️ 行首不要有空白。 Python 裡行首的空白是有意義的(第 5 課會說), 現在多打一個空格就會得到 IndentationError。

完成的樣子

這一課的參考做法——程式碼每一行的號碼,就印在對應的那塊積木上。

1print("Hello!")2print("我在學 Python")
"Hello!""我在學 Python"印出印出12

把積木打散,自己排回去:排回去:把剛才那支程式的積木排好

它們是同一個東西

點一下第二塊輸出積木,程式碼裡第二個 print 會亮起來。 再把游標移到第一行,換成第一塊亮。

⚠️ 你不是在學兩種東西。你在看同一支程式的兩種寫法, 而它們永遠是同步的,改哪一邊都算數。

上面那張「同一支程式,兩種看法」就是這件事: 程式碼的每一行都有一個號碼,而那個號碼就印在對應的積木上。

換你了

讓它印出三行:你的名字、你的學校、一句你想說的話。

到編輯器做這一題:練習:印出三行你自己的話

做一個

用 print 印出一張名片:一排星號、你的名字、一句你想說的話、再一排星號。

🔴 這一題沒有裁判,每個人印出來的都不一樣,而那正是重點。 做完跟旁邊的人看一下彼此的。

到編輯器做這一題:做一個:你的名片

這一課你做了什麼

如果卡住了

你看到 多半是因為
SyntaxError 指著下一行 括號或引號少了一個
NameError: Hello 引號漏了
IndentationError 行首有多餘的空白
什麼都沒印 那一行沒有 print,或整個檔案是空的
在編輯器打開這一課 →