Python 發展至今已具備相當成熟的生態系,版本選擇上建議優先使用 Python 3,除非遇到特殊套件相容性問題才考慮 Python 2。Mu 編輯器是 Raspberry Pi 系統上的友善 Python 開發工具,適合初學者快速上手。執行 Python 程式碼時,可透過終端機輸入 python3python 指令搭配檔案名稱執行,並注意程式碼所需的執行許可權。Python 使用縮排來定義程式碼區塊結構,不同於其他使用大括號的語言。變數指定使用等號,無需事先宣告型別,命名需遵循字母、底線與數字的組合,且不得以數字開頭。使用 print() 函式可以顯示變數值或字串,應注意 Python 版本間語法差異。

選擇 Python 2 或 Python 3

問題 您需要使用 Python,但不知道該使用哪個版本。

解決方案 兩者都使用。盡可能使用 Python 3,直到您遇到一個最好由 Python 2 解決的問題。

討論 雖然 Python 最新的版本 Python 3 已經存在多年,但您會發現很多人仍然在使用 Python 2。事實上,在 Raspbian 分佈中,兩個版本都被提供,版本 2 只被稱為 Python,而版本 3 被稱為 Python 3。並且 Python 3 由玄貓執行。本文中的範例都是為 Python 3 撰寫的,除非另有說明。大多數範例可以在 Python 2 和 Python 3 下無需修改即可執行。

Python 社群不願放棄舊版本的原因主要是因為 Python 3 引入了一些改變,破壞了與版本 2 的相容性。因此,為 Python 2 開發的一些第三方函式庫在 Python 3 下無法執行。

我的策略是盡可能使用 Python 3,只有當遇到相容性問題時才使用 Python 2。

另見 關於 Python 2 與 Python 3 的爭論的好總結,可以參考 Python wiki。

使用 Mu 編輯器編輯 Python 程式

問題 您已經聽說過 Mu 編輯器,想要使用它來編寫 Python 程式。

解決方案 Mu 編輯器預先安裝在最新版本的 Raspbian 中。您可以在主選單的「程式設計」部分找到它(圖 5-1)。

圖 5-1. 從主選單開啟 Mu 當您第一次啟動 Mu 時,您會被提示選擇模式(圖 5-2)。

圖 5-2. 選擇 Mu 的模式 選擇 Python 3 模式並點選「確定」。這將開啟 Mu 編輯器,您可以開始編寫 Python 程式。

讓我們試試看。小心地在編輯器區域下面的「在這裡寫入您的程式碼 :-)」註解中輸入以下測試程式:

for i in range(1, 10):
    print(i)

這個簡短的程式將會計算到 9。目前不要擔心它的工作原理;所有細節將在 Recipe 5.21 中解釋。注意當您到達第一行的末尾並按下 Enter 鍵時,第二行的 print 陳述式應該會自動縮排(圖 5-3)。

圖 5-3. 在 Mu 中編輯程式碼 在我們可以執行程式之前,我們需要將其儲存到一個檔案中。因此,在 Mu 視窗的頂部,點選「儲存」按鈕,然後輸入檔案名稱 count.py(圖 5-4)。

圖 5-4. 在 Mu 中儲存檔案

現在檔案已經儲存,我們可以執行程式了。點選「執行」按鈕,這將導致 Mu 編輯器螢幕分割,底半部分顯示執行程式的結果(圖 5-5)。

圖 5-5. 執行程式 count.py 如果您已經按照 Recipe 3.22 下載了本文的附件檔案,您可以直接在 Mu 中開啟它們,方法是使用「開啟」功能。

使用Mu編輯器和Python控制檯

Mu編輯器是一種適用於Raspberry Pi的編輯器,支援Python 3。要存取這本文的Python程式碼,請在Mu中按下「檔案」按鈕,然後導航到 /home/pi/raspberrypi_cookbook_ed3/python 目錄。

Python縮排

Python是一種獨特的語言,它使用縮排來定義程式碼的結構。與其他使用 {} 來定義程式碼塊的語言不同,Python使用縮排來表示程式碼的層次。例如,在 for 迴圈中, print 陳述式必須縮排四個空格,以便Python能夠正確地解釋程式碼。

Mu編輯器模式

Mu編輯器支援多種模式,包括Python 3、Adafruit CircuitPython和BBC micro:bit。選擇Python 3模式可以編寫和執行Python程式。

Python控制檯

Python控制檯是一種命令列介面,允許您在不需要編寫完整程式的情況下執行Python命令。您可以在Mu編輯器或終端機中存取Python控制檯。在Mu編輯器中,按下「REPL」按鈕即可存取Python控制檯。

使用Python控制檯

要使用Python控制檯,請在Mu編輯器或終端機中輸入Python命令。控制檯會顯示 >>> 提示符,表示您可以輸入Python命令。如果需要輸入多行命令,控制檯會自動提供續行行,續行行以 ... 符號表示。您仍需要縮排續行行,以便Python能夠正確地解釋程式碼。

練習

  1. 在Mu編輯器中開啟Python控制檯。
  2. 輸入簡單的Python命令,例如 2 + 2
  3. 觀察控制檯的輸出。
  4. 嘗試輸入多行命令,例如 while 迴圈。
  5. 觀察控制檯的輸出和續行行的縮排。

執行Python程式

啟動Python程式

要從終端機執行Python程式,可以使用pythonpython3命令,後面接著程式檔案名稱。例如:

$ python3 myprogram.py

這個命令會啟動Python 3解譯器,並執行myprogram.py檔案中的程式碼。

選擇Python版本

如果您想要使用Python 2執行程式,可以將python3改為python

$ python myprogram.py

請注意,Python 2已經不再被官方支援,建議使用Python 3。

執行程式的許可權

大多數Python程式可以在普通使用者模式下執行,但有些程式可能需要超級使用者許可權。若需要以超級使用者身份執行程式,可以在命令前加上sudo

$ sudo python3 myprogram.py

這會提示您輸入密碼,以便以超級使用者身份執行程式。

執行Python程式的好處

從終端機執行Python程式可以提供更多的控制權和彈性,尤其是在需要與系統資源互動或需要特定許可權的情況下。同時,也可以使用各種工具和函式庫來擴充套件Python的功能。

內容解密:

上述命令的作用是啟動Python解譯器,並執行指設定檔案中的程式碼。檔案名稱後面的.py副檔名錶示這是一個Python程式檔案。當您執行這個命令時,Python解譯器會讀取檔案中的程式碼,並按照語法規則執行。

圖表翻譯:

  flowchart TD
    A[啟動終端機] --> B[輸入命令]
    B --> C[執行Python程式]
    C --> D[輸出結果]

這個流程圖描述了從啟動終端機到執行Python程式的過程。首先,啟動終端機;然後,輸入命令;接下來,執行Python程式;最後,輸出結果。

變數與指定

在 Python 中,為了方便存取和運算元據,我們需要給資料賦予名字,這個過程被稱為變數指定。變數是一個用來儲存資料的容器,透過給變數指定,可以讓我們方便地使用和操作這些資料。

變數指定的基本語法

Python 中的變數指定使用等號(=)進行,基本語法如下:

變數名 = 

例如:

a = 123  # 將整數 123 指定給變數 a
b = 12.34  # 將浮點數 12.34 指定給變數 b
c = "Hello"  # 將字串 "Hello" 指定給變數 c
d = 'Hello'  # 將字串 "Hello" 指定給變數 d

注意,在 Python 中,字串可以使用雙引號(")或單引號(’)來定義。

變數的特點

Python 中的變數有一些重要特點:

  • 動態型別:Python 是一種動態型別語言,這意味著你不需要在使用變數之前宣告其型別。變數的型別是由其指定的值決定。
  • 指定:變數的值可以透過指定運算子(=)進行修改。
  • 可重用:變數可以多次使用和重用。

變數命名規則

在 Python 中,變數名稱需要遵循一定的規則:

  • 字母和底線:變數名稱只能包含字母(a-z、A-Z)、底線(_)和數字(0-9)。
  • 不能以數字開頭:變數名稱不能以數字開頭。
  • 區分大小寫:Python 是區分大小寫的,這意味著 aA 是兩個不同的變數。
內容解密:

上述程式碼示例展示瞭如何在 Python 中進行變數指定。透過使用等號(=),我們可以將不同的值賦給變數,並且可以多次使用和重用這些變數。這些變數可以儲存不同的型別的值,例如整數、浮點數和字串。

圖表翻譯:

  flowchart TD
    A[變數指定] --> B[等號 (=)]
    B --> C[變數名稱]
    C --> D[值]
    D --> E[儲存]
    E --> F[使用]

這個流程圖展示了變數指定的過程,從等號(=)到變數名稱、值、儲存和使用。這個過程是 Python 中的一個基本概念,對於程式設計師來說非常重要。

變數與輸出

在 Python 中,變數是一個用來儲存資料的容器。變數可以是數字、字串或其他型別的資料。變數的名稱是用來存取變數值的標籤。

變數命名規則

根據玄貓的命名規則,變數名稱應該以小寫字母開頭,如果變數名稱由多個單片語成,則應該使用底線字元(_)連線。這樣可以使變數名稱更容易閱讀和理解。

字串常數

Python 中的字串常數可以使用單引號(’)或雙引號(")定義。例如:

my_string = 'Hello, World!'
my_string = "Hello, World!"

兩種方式都可以定義字串常數。

邏輯常數

Python 中的邏輯常數是 True 和 False,它們是區分大小寫的。

變數範例

以下是一些有效的變數名稱範例:

x
total
number_of_chars

這些變數名稱都遵循了玄貓的命名規則。

顯示輸出

如果你想要顯示變數的值,可以使用 print() 函式。例如:

x = 10
print(x)

這將輸出 10

注意事項

在 Python 2 中,print 可以不使用括號,但是這在 Python 3 中是不允許的。為了確保程式碼在兩個版本中都能夠正常執行,應該始終使用括號。

從使用者經驗視角來看,選擇 Python 版本及使用 Mu 編輯器對於初學者至關重要。分析 Python 2 與 3 的相容性問題,顯然 Python 3 更具前瞻性,但仍需考量舊有程式函式庫的支援度。Mu 編輯器簡化了程式碼編寫、儲存和執行流程,其自動縮排功能有效降低了初學者錯誤率,提升了開發體驗。然而,Mu 的功能相對基礎,對於大型專案的管理仍有不足。展望未來,Python 3 將持續主導開發領域,而更進階的 IDE 或編輯器將提供更強大的開發支援。對於初學者,建議優先熟悉 Mu 並逐步探索其他工具。玄貓認為,掌握 Python 3 與合適的開發工具是 Python 程式設計的根本。