From 7c4146275b5e0bc336c77afe3c24c0609e64bfc6 Mon Sep 17 00:00:00 2001 From: Alan Wang <44191076+alankrantas@users.noreply.github.com> Date: Sat, 6 Feb 2021 23:18:19 +0800 Subject: [PATCH] Update learn-python-on-microbit-zh.md --- guide/learn-python-on-microbit-zh.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/guide/learn-python-on-microbit-zh.md b/guide/learn-python-on-microbit-zh.md index 983f00a..e5c0bf9 100644 --- a/guide/learn-python-on-microbit-zh.md +++ b/guide/learn-python-on-microbit-zh.md @@ -24,6 +24,14 @@ Python 理論上是多用途的系統語言,但它在企業系統的用處正 那麼,孩子多小可以學 Python 呢?這大概得看個人資質,不過國高中以下恐怕都不是好主意。一來學寫程式仰賴英文閱讀及打字能力,二來它需要抽象思考。坊間有很多兒童教育單位會用遊戲式方式教導運算思維等等,但那和真正寫程式是有差距的。我自己也是直到兩年前才開始學 Python,所以只要年紀夠大,什麼時候開始並不會有差別。 +## MicroPython + +當然,正規的 Python 沒有辦法在記憶體很小的微控制器上執行。micro:bit 使用的 Python,其實是 Python 的一種特殊版本,叫做 MicroPython。 + +MicroPython 的功能自然沒有一般 Python 多,而且含有和開發板有關的控制功能。不過,絕大部分的核心 Python 功能是一樣的。 + +更精確來說,目前的 MicroPython(包含各種衍生版本)都是以 2014 年的 Python 3.4 為基礎發展的,因此少數比較新的功能就沒辦法使用。還好那些功能大多都是比較進階的玩意。 + ## 事前準備 你需要一片 [BBC micro:bit](https://microbit.org/zh-tw/new-microbit/),本指南會使用 2020 年 10 月後上市的第二版(V2),不過筆者會確保大部分的程式仍能與一代相容。既然二代擁有更大的記憶體、更快的處理器和更多功能,價格也與一代無異,使用二代自然是更合理的選擇。 @@ -97,13 +105,11 @@ Type "help()" for more information. >>> ``` -是 Python 直譯器的 **REPL**(Read-Eval-Print Loop,讀取-求值-輸出循環)提示,這模式又稱為互動模式。要解釋這個東西,我們得先從 Python 的運作特性說起。 +是 Python 直譯器的 **REPL**(Read-Eval-Print Loop,讀取-求值-輸出循環)提示,這模式又稱為互動模式。一般兒童程式教學不會從這裡講起,但對所有 Python 學習者來說,這是你不能不認識的東西。 目前所謂的程式語言,其實是經過設計好讓人類撰寫的一系列語法,那不是電腦能直接解讀的格式。傳統上像 C++ 之類的語言,必須在寫完程式後編譯(compile)它,把程式轉成二進位的機器碼(machine code)。如果編譯過程中發現程式有問題,編譯就會失敗,並試著告訴你哪幾行程式有問題。這類語言也稱為編譯式語言。 -但也有一些語言,包括 Python 在內,是直譯式語言,也就是不事先編譯,而是現場一行行程式去執行,遇到問題時才停下來。(當然實際上沒有這麼簡單,不過我們可以先這樣認定就好。)直譯式語言的優勢是不必等待編譯就能馬上執行,這對於撰寫一些簡單的程式和做測試非常方便。 - - +但也有一些語言,包括 Python 在內,是直譯式語言,也就是不事先編譯,而是現場一行行程式去執行,遇到問題時才停下來。(當然實際上沒有這麼簡單,不過我們可以先這樣認定就好。)直譯式語言的優勢是不必等待編譯就能馬上執行,這對於撰寫一些簡單的程式和做測試非常方便。而 REPL 是個像終端機一樣的介面,它能讓我們執行一些程式、檢查程式使用的資料、探索系統中有哪些功能等等。學著怎麼在開發 Python 程式的過程善用 REPL 是個不可不輕視的重要技能。 (持續寫作中...)