「Leung Lawrence」的全部文章

Python: 優雅的變數交換:a, b = b, a 的底層元組拆包機制

傳統語言的「暫存變數」

在大多數程式語言中,如果你想把變數 a(值為 5)和變數 b(值為 10)的內容互相交換,你不能直接寫 a = b; b = a(這樣 a 變成 10 後,b = a 就會讓 b 也變成 10,原本 5 的資料就遺失了)。因此你必須引進第三個臨時暫存變數 temp:

C

int temp = a;

a = b;

b = temp;

Python 的一行搞定

在 Python 中,你只需要一行魔法般的代碼:

Python

a, b = b, a

底層運作原理(Tuple Unpacking

這並不是語法糖那麼簡單,Python 在底層其實運用了元組(Tuple)的封裝與拆包機制

  1. 右側封裝(Packing:Python 會先將等號右邊的 b, a 放入記憶體中,自動打包成一個無名的元組 (b, a)。此時裡面的值已經被固定下來(例如 (10, 5))。
  2. 左側拆包(Unpacking:接著,Python 會把這個元組內的位置,依序指派給等號左邊的變數 a 和 b。
    由於這個過程是在同一個指令週期中透過 CPython 解譯器內部一次性完成,因此完全不需要工程師手動去寫暫存變數,不僅程式碼極其優雅,執行效率也非常好。

最速 Hello World:內建神祕彩蛋 import __hello__

傳統語言的繁瑣

在很多語言中,要印出經典的 “Hello, World!” 需要寫好幾行複雜的結構。以 Java 為例,你必須先宣告類別、定義主函數,才能執行:

java

public class Main {

    public static void main(String[] args) {

        System.out.println(“Hello, World!”);

    }

}

Python 的簡潔與彩蛋

Python 本身就已經非常簡潔,只需要一行 print(“Hello World!”) 即可。但官方核心開發團隊為了展現幽默感,在底層凍結模組(Frozen Modules)中直接內置了一個彩蛋。

當你在 Python 終端機輸入:

python

import __hello__

系統會直接在螢幕上吐出 Hello World!。

進階冷知識

這個彩蛋其實有兩個版本!在早期的 Python 版本中,如果你輸入 import __pypackages__ 或是特定未公開模組,有時會觸發不同的好玩訊息。而在 Python 3.11 之後的版本中,官方甚至對這個內建彩蛋進行了代碼重構與底層優化,讓這個「沒什麼實際用途、單純博君一笑」的彩蛋,執行速度變得比以前更快、效率更高。

Python: 捨棄傳統花括號:強制「縮排」的語法革命

捨棄傳統花括號:強制「縮排」的語法革命

傳統語言的作法

在 C, C++, Java, JavaScript, C# 等絕大多數傳統程式語言中,程式碼的結構區塊(例如 if 判斷式、for 迴圈)都是用花括號 {} 來包覆的。例如:

// JavaScript 範例

if (score > 60) {

    console.log(“及格”);

}

在這些語言中,程式碼前面的空格(縮排)純粹是為了給人類閱讀方便,不論你縮排幾格、甚至把所有程式碼寫在同一行,電腦都讀得懂。這導致常有工程師因為排版混亂,引發難以排查的邏輯 Bug。

Python 的作法

吉多認為「代碼被閱讀的次數,遠比被編寫的次數還要多」。因此 Python 大膽移除了花括號,改用強制縮排(Indentation來定義程式碼區塊。

# Python 範例

if score > 60:

    print(“及格”)  # 這行必須縮排,否則直接報錯

技術規範與影響

在 Python 中,縮排是語法的一部分。如果縮排不一致,系統會直接拋出 IndentationError 錯誤拒絕執行。官方推薦的規範(PEP 8)是每次縮排使用 4 個空格。這個設計強迫所有人在撰寫代碼時必須保持整潔,大大提升了開源專案與大型團隊協作時的代碼可讀性。

Python: 隱藏的程式碼哲學:輸入 import this 解鎖「Python 之禪」

運作原理

如果你打開任何一個 Python 的執行環境(REPL 終端機或 Jupyter Notebook),輸入 import this 並按下 Enter,螢幕上就會印出一首名為Python 之禪》(The Zen of Python的哲學詩。

背後故事

這首詩並非吉多本人所寫,而是由 Python 社群的核心貢獻者蒂姆·彼得斯(Tim Peters在 1999 年撰寫的。他將吉多對語言設計的根本理念,濃縮成 19 條指導原則。這不僅僅是好玩,它更是 Python 官方社群在審查新功能(PEP 提案)時的最高指導技術準則。

(資料來源: Wikipedia. s.v. “Zen of Python.” 2026年6月18日檢索. https://en.wikipedia.org/wiki/Zen_of_Python.)

核心金句解析

  • “Beautiful is better than ugly.”(優美勝於醜陋):程式碼不僅要能跑,排版與邏輯還要像藝術品一樣好看。
  • “Explicit is better than implicit.”(明瞭勝於晦暗):程式碼要做什麼應該清清楚楚寫出來,不要搞隱晦的魔法或讓系統在背後偷偷猜測。
  • “There should be one– and preferably only one –obvious way to do it.”(做一件事應該只有一種,而且最好只有一種明顯的方法):這與 Perl 語言「條條大路通羅馬(TMTOWTDI)」的哲學完全相反。Python 追求讓不同工程師寫同一個功能時,寫出來的代碼高度相似,進而降低團隊合作的閱讀成本。
(資料來源: Wikipedia. s.v. “Zen of Python.” 2026年6月18日檢索. https://en.wikipedia.org/wiki/Zen_of_Python.)

有趣的是,這段《Python 之禪》在源碼裡其實是用一種簡單的 ROT13(字母位移 13 位)加密法儲存的,當你執行 import this 時,它才會在記憶體中解密並顯示出來!

Python : 名字由來並非蟒蛇:源自 1970 年代英國神劇

歷史背景

Python 的創始人吉多·范羅蘇姆(Guido van Rossum)在 1989 年 12 月的聖誕節假期期間,因為辦公室放假覺得太無聊,決定開發一門新的腳本語言,作為當時他參與開發的 ABC 語言的繼承者。

(資料來源:Wikipedia. s.v. “Guido van Rossum.” 2026年6月15日檢索. wikipedia.org.)

命名由來

當時他正在觀看英國 BBC 經典超現實幽默喜劇《蒙提·派森的飛行馬戲團》(Monty Python’s Flying Circus)。吉多非常喜歡這部劇,他希望這門新語言的名字能夠具備「短小、獨特、且帶有一點神秘感」的特質,於是就隨手抓了 Python 這個字來命名。

(資料來源: IMDb. “Monty Python’s Flying Circus (TV Series 1969–1974).” 2026年6月15日檢索. imdb.com.)

後續演變

雖然名字跟動物無關,但這個名字實在太像蟒蛇了。隨後社群在設計官方標誌(Logo)時,還是採用了兩條互相纏繞的青藍色與黃色蟒蛇。時至今日,Python 社群也常用蛇類術語來命名工具,例如 Python 的套件庫索引叫做 PyPI(全稱 Python Package Index),其俗稱就叫 The Cheese Shop(這同樣是該喜劇中一個著名的經典笑話梗)。

(資料來源:Wikipedia, s.v. “Python (programming language).” 2026年6月15日檢索. wikipedia.org.)

Google Colab: 免安裝寫Python

免安裝!5分鐘用 Google Colab

開始寫程式不想在電腦安裝軟體嗎?

沒問題!Google Colab 是一款免費的線上程式瀏覽器環境。只要有 Google 帳號,你就能直接在網頁上編寫並執行 Python。

為什麼推薦 Google Colab?

零設定:打開網頁就能直接寫程式。完全免費:不消耗自己電腦的效能。雲端儲存:程式碼自動儲存到 Google 雲端硬碟。方便分享:一鍵就能把程式碼分享給朋友或老師。

Google Colab 快速上手四步驟:

[步驟 1] 登入雲端硬碟 ➔ [步驟 2] 新建 Colab 檔案 ➔ [步驟 3] 建立程式碼儲存格 ➔ [步驟 4] 按下執行

[步驟 1] 進入雲端硬碟打開你的 Google 雲端硬碟。

[步驟 2]新增 Colab 檔案點擊左上角的 「新增」 ➔ 選擇 「更多」 ➔ 點選 「Google Collaboratory」。

[步驟 3]工作區你會看到一個乾淨的頁面。頁面中一個格子叫做 「儲存格 (Cell)」。這就是你寫程式碼的地方。

[步驟 4]寫下第一行程式並執行請在儲存格內輸入以下程式碼:print(“Hello! 這是我的第一個網頁 Python 程式!”)

輸入完成後,點擊儲存格左側的 「▶️ 執行」按鈕(或按下快捷鍵 Ctrl + Enter),下方就會立即顯示執行結果!