本文旨在補充《超圖解Python程式設計入門》2-9頁的PEP 8寫作風格,以及Visual Studio Code程式編輯器的autopep8延伸模組設定說明。

本文旨在補充《超圖解Python程式設計入門》2-9頁的PEP 8寫作風格,以及Visual Studio Code程式編輯器的autopep8延伸模組設定說明。

筆者將在7月27日舉辦一個讀者見面暨新書發表交流會,活動由旗標出版社主辦、台北天瓏書局提供場地,地點在台北市中正區重慶南路一段105號2樓。報名網址:https://tenlong.kktix.cc/events/f9796

本單元將改寫《超圖解Python程式設計入門》第13章「紀錄心情留言悄悄話」的LINE聊天程式,把存在全域變數的悄悄話改存在Redis Labs資料庫,這樣的話,將此LINE程式佈署到Heroku平台也不會發生資料不同步的情況。

Redis雜湊的鍵和欄位名稱只能是字串,無法像JavaScript那樣透過陣列存取。為了在Redis中營造出陣列那樣,存取「一組相關物件資料」的語法,人們習慣採用如下的命名格式:用相同的名稱起頭,後面跟著冒號,再加上虛構的索引編號。

用排列骨牌來比喻存取串列資料,取出前面或後面三、五個牌很簡單,但若要取出第10個牌,就要重頭開始數。串列元素的編號從0開始,也可以從後頭由-1倒數。

Heroku的虛擬機每一天至少會被重置(cycle,原意是「循環」)一次,這樣做可以避免某些程式沒有適切地釋放資源(如:記憶體)而阻礙系統效能,一旦「虛擬機管理員」察覺某個虛擬機當掉了,它將立即重置該虛擬機。


select程式庫的select()函式,可接收來自作業系統的socket狀態訊息,每當有資料輸入或者準備好要輸出時,Python程式碼就會收到通知。select()不僅能偵聽socket狀態,在UNIX/Linux系統上也可以偵聽檔案讀寫、使用者在終端機的輸入操作…等所有可傳回有效「檔案描述符」(file descriptor,相當於檔案的識別碼)的物件。

如同書本第16-19頁說明,伺服器端socket物件將偵聽用戶端連線請求,這個socket相當於「總機」;接受(accept)用戶端連線後,伺服器將動態產生一個與該用戶通信的socket物件,此舉相當於「總機」把電話轉給某專人來服務客戶。

使用Wi-Fi連線顯然比較符合ESP8266的天性,但是對於沒有內建Wi-Fi的MicroPython控制板或者Arduino板,USB是最普遍的選擇。本文將介紹使用Python程式與Arduino和MicroPython(ESP8266板)進行序列通訊的方法。

CircuitPython是一種在微控器運行的Python 3語言環境,由Adafruit公司維護並開放原始碼。CircuitPython其實是從另一個也是在微控器上執行的MicroPython移植過來的,Adafruit官網的這篇文章提到,CircuitPython和MicroPython有98%相同,解譯器核心也相同,只是有些程式庫的命名與結構不同。

本文列舉《超圖解 Python 物聯網實作入門:使用 ESP8266 與 MicroPython》書本所使用的電子零組件。「全部零件清單」是假設採用麵包板組裝,重複使用零件所需要的最少數量。接線時請留意,同類型的電子零組件往往有不同的供應來源,你所採購的零件接腳位置可能和書本當中的描述不一樣。像底下的0.97吋OLED螢幕,第一腳可能是電源,也可能是接地,請仔細確認電路板上面的標示。

Begin typing your search term above and press enter to search. Press ESC to cancel.