^

Python程式設計第零章

HiThink-logo
海獅程式團隊
Jul 16,2020

學習Python程式設計前,先來談談Python程式碼是如何被執行的!認識什麼是編輯器?什麼是編譯器?文章適合Python入門者及初學者閱讀。
2020/07/16(修)

Python程式設計第零章
Python程式設計第零章

...

為什麼不一開始就來分享如何安裝Python軟體呢?對於學習程式設計的小建議:先從了解為何要用?再來思考如何學?一步步的奠定基礎「程式概念、理解吸收、實作練習、變化應用」。

Python程式碼的產生及執行過程:
1.選擇編寫程式工具 2.檢查程式語法結構 3.翻譯程式碼 4.執行程式結果

1.選擇編寫程式工具

開始編寫任何程式語法時,使用者必須先選擇一種工具來編寫程式碼(或稱原始碼 Source code),所以編寫程式碼的工具就叫做「編輯器」。支援Python程式的編輯器種類非常多,每種編輯器都有不同的功能特色,有基本應用也有進階功能,為了方便介紹說明簡化成下列類別:

1)指令式編輯器
Python安裝完成後,預設已有內建IDLE編輯器(Integrated Development and Learning Environment)。IDLE雖然只有基本功能(語法顏色標註、指令碼提示),但最大的特色是「互動式交談模式」,當開發者將程式碼一行一行的輸入,若語法結構有錯誤,將會馬上提醒錯誤資訊。

Python Shell
IDLE編輯器範例

2)文字編輯器
文字編輯器也可以用來編寫程式碼,千萬不要小看它!因為有些專家特別喜愛,原因是文字編輯器可以同時支援多種不同的程式語言,開發者不需為了開發特定的程式語言,再安裝另一種編輯器程式。
例如:notepad++

Notepad ++
文字編輯器範例

3)IDE編輯器
IDE(Integrated Development Environment)整合開發環境編輯器工具,多功能型的開發工具,可以讓開發者更有效率的進行程式開發作業。每種IDE工具都有獨特的功能及特色,依開發者的喜愛來選擇。
基本功能:程式碼顏色標註、指令碼補全、圖形介面等
進階功能:debug追蹤、版本控制等
例如:VS Code

VS Code
IDE編輯器範例

4)網頁版編輯器
使用瀏覽器直接於網頁上編寫程式碼並可執行程式,結果也是呈現網頁上,這類編輯器特色是不需要在電腦上安裝任何應用程式,在任何地點任何一台電腦只要可以上網就能進行編程。
例如:repl.it

repl.it
網頁版編輯器範例

...

2.檢查程式語法結構

當程式碼開發完成後,再來就是執行程式,執行程式的工作就由編譯器或直譯器處理。執行後會先進行檢查作業來確認程式碼內的語法結構是否符合各程式語言中的語法規範,若有不符合將出現錯誤訊息,直到修正錯誤排除問題。

例如:
初學者學習Python程式中,一定會遇過的錯誤訊息,執行程式後出現:

SyntaxError: expected an indented block

錯誤原因:程式語法中,縮排沒有對齊而造成錯誤。

此處說明是檢查程式碼中的語法結構,而不是程式邏輯是否正確!

3.翻譯程式碼

語法結構檢查完成後,將開始對於程式碼進行翻譯(編碼)作業,這個過程主要是將程式碼(原始碼)編碼成電腦能懂的語言。python的翻譯過程是採用直譯(Interpreter)方式處理,程式將一行一行的被翻譯成可執行檔。

程式碼(Source Code) > 直譯器 (Interpreter) > 位元碼( Byte Code) >執行結果(Output)

補充:
位元碼(Byte Code)到命令硬體開始配置資源過程中,還需再次轉化為機器碼的編譯作業,有興趣更深入了解者,再上網尋找相關主題的說明。

4.執行程式結果

最後來到開發者最期待的階段,編譯過的可執行檔,交由CPU進行各項硬體資源調度及運算後輸出程式執行的結果。當輸出結果若符合預期就開心擊掌,若有錯誤就開始動動腦來排除問題(debug),修改程式後再次執行程式直到將問題都解決完成設定目標。

...

閱讀完此文章,你是否對於Python程式設計已經有最基本的認識。使用編輯器來編寫程式碼,再交由編譯器或直譯器進行編碼作業,最後再由CPU來執行程式並輸出結果。

編輯器功能:
提供開發者一個編寫程式碼的工具

編譯器或直譯器功能:
檢查程式語法結構 > 翻譯程式碼 > 執行程式結果

自己動動手 、動動腦、試看看

初學程式設計者最常問的一個問題「哪一種編輯器最好用?」
其實這並沒有標準答案,因為沒有最好用的編輯器,編輯器只是一個工具,若選擇一個強大的編輯器,但實際上並不會使用到那些功能!所以只需要選擇"適合目前自己使用的",隨著學習內容而有不同需求功能時,再來進一步選擇。因此讓我們將重點放在學習「程式設計」和「程式邏輯」。

準備好往下一步前進了「啟動Python學習之旅,邁入程式設計的0|1世界」。

参考資源
如何設定Notepad++可支援Python!

大家都能愛編程、愛思考、愛創造