第 01 課 · 入門 · 18 分鐘

Python 列印與字串

讓 Python 顯示文字、組合多個值,並輸出真正看得懂的訊息。

print 與 sep引號與跳脫f-string 格式化

第一個早上,Maya 七點打開姑媽的咖啡攤,第一位客人要的是一張小票,不是一段解釋。她手裡有一個名字、一個價格,還有幾行程式碼,要把它們變成客人一眼能看清的字。print() 裡到底是哪一部分在決定長相?

每個 Python 程式都要先產生一個看得見的結果。print() 是檢查變數、驗證想法和展示輸出最簡單的方式。本課你會學習字串、分隔符和 f-string,用它們拼出清楚的提示資訊。 你還會排版一張多列收據,並檢查看不見的空白字元。

print() 是一個函式

把一個或多個值傳給 print(),Python 會把它們轉成文字並寫到螢幕上。預設情況下,多個值之間用空格分隔,行尾會換行。你可以用 sep 改變分隔符,用 end 改變行尾。

print("拿鐵", 4.5)
print("拿鐵", 4.5, sep=": ")
print("載入中", end="...")
print("完成")

分隔符與行尾

字串需要引號

字串就是引號裡的文字。單引號和雙引號都可以,但兩端必須一致。三引號可以讓字串跨越多行。如果文字裡有英文撇號,可以用雙引號包住,或者用反斜槓跳脫。

name = "Maya"
message = 'It\'s Python'
print(name)
print(message)

建立字串

f-string 插入變數

在左引號前加 f,再把表達式放進花括號,就能把變數嵌進文字。這是組合文字和變數最清楚的方式。像 .2f 這樣的格式說明符可以讓金額保留兩位小數。

name = "Maya"
price = 4.5
print(f"你好,{name}!")
print(f"總計:{price:.2f} 元")

更易讀的格式化輸出

排版一行收據

真實輸出通常是一張表,而不是一個值。格式說明符可以設定最小寬度並對齊:< 左對齊,> 右對齊,.2f 固定兩位小數。列寬不必完全相同,但保持一致,收據才容易讀。

name = "Latte"
qty = 2
price = 4.5
line_total = qty * price
print(f"{name:<8} {qty:>2} x {price:>5.2f} = {line_total:>6.2f}")
print(f"{'TOTAL':<8} {'':>2}   {'':>5}   {line_total:>6.2f}")

寬度、對齊和固定小數位

先檢查原始輸出,再猜格式

print() 會隱藏空字串、空格和換行之間的區別;repr() 會把這些字元顯示出來,len() 會數出長度。輸出不對時,先檢查原始值,比反覆猜格式更快。

message = "  Latte  \n"
print(repr(message))
print(len(message))
print(repr(message.strip()))
print(message.strip().split())

repr() 會暴露隱藏字元

回傳值,而不只是列印

print() 只負責把文字寫出來,回傳值是 None;return 則把值交回給呼叫者。只要一個函式會被使用第二次,這個區別就很重要。只會列印的函式只能給人看,會回傳值的函式才能被測試、拼接或寫進 JSON。如果你在期望得到文字的地方看到了 None,先檢查函式是不是只列印而沒有回傳。

def label(name):
    return f"商品:{name}"

text = label("拿鐵")
print(text)
print(label("茶"), end=" | ")
print(len(text))

回傳的字串可以繼續使用

本課要點

  • print() 可以接收多個值,預設在末尾換行。
  • sep 控制多個值之間的文字,end 控制這一行結束後追加什麼。
  • 字串兩端引號要比對,多行文字可以用三引號。
  • f-string 可以直接把變數和表達式嵌入文字。
  • 格式說明符能對齊列;repr() 能暴露 print() 隱藏的空白字元。
  • print() 是給人看的,return 是把值交給程式的其他部分。

常見錯誤

  • 忘記右引號,或者單引號和雙引號混用。
  • 直接用 + 把字串和數字相加,沒有先轉換型別。
  • 在 f-string 裡只寫變數名、不寫花括號,結果變數名被原樣列印。
  • 把 repr() 當成另一種 print(),忘了它會顯示引號和跳脫字元。
  • 呼叫一個只會列印的函式,卻期望它把值回傳。
輪到你

列印一張兩行小票:每行包含商品名和價格,用短橫線分隔。

動手試試

改改變數、先預測輸出,再執行程式碼。第一次點擊「執行程式碼」時會下載 Python 執行時,可能需要幾秒鐘。

瀏覽器內 Python本機執行 · 無需帳號
首次執行會從 CDN 下載 Pyodide。修改後點擊「執行程式碼」。

練習本課

12 道題,作答後立即看到解釋。

查看 12 道題答案開始練習
變數與型別 →