Python 程式設計
2019/05/13 謝碧景(c)編製更新
學習目標
依據『十二年國民基本教育科技領域課程綱要』與『臺北市科技領域高中資訊科技教學綱要』之『 程式設計(P)』及『演算法(A)』等主題編製。
瞭解與學會『 程式設計(P)』及『演算法(A)』的概念與實作應用。
瞭解Python 之發展與特色。
學會建置Anaconda整合開發環境,下載與安裝,及Spyder 編輯器介面功能。
一、Python發展簡介
(一)發展歷史
1989年12月吉多范羅蘇姆於荷蘭國家數學及計算機科學研究所開發出Python程式語言。1991年推出第一個Python編輯器,Python 2.0 於2000年10月16日發布,Python 3.0 於2008年12月3日發布。【參閱:wiki】
(二)特色
簡單易學、免費且開源。【參閱:官網 Python documentation、模組的索引、語法參考。】
高階程式語言:是不需編譯成二進位代碼的『直譯式』程式語言。
可移植性、可嵌入性:Python可在多種平台開發執行,如:Linux、Windows、FreeBSD、Macintosh、OS/2…等,提供許多內建的標準且多元模組,及嵌入到 C 或 C++ 程式。
豐富且多元的模組:有許多內建的標準模組,及第三方開發的高品質模組,如:資料庫、網頁瀏覽器、CGI、FTP、XML、HTML、密碼系統、GUI(圖形用戶界面)…等。【參閱:Python 標準函式庫 (Standard Library)】
(三)程式設計流程
二、建置Anaconda整合開發環境(IDE)
(一)安裝 Anaconda
下載檔案:使用者請依需求至官網下載檔案後,進行安裝。
整合型開發環境 ( integrated development environment),簡稱 IDE。
◆註:安裝過程中,核選All Users後→按Next鈕→V核選 Add Anaconda to the system PATH enviroment variable 加入環境變數→按 Install 安裝。
(二)功能項目
Anaconda 開發環境包含超過300種常用科學資料分析模組,內建Spyder ( IDLE編輯器加強版) 編輯器及Jupyter Notebook編輯器。
安裝後,在程式集→Anaconda3 資料夾中會看到常用的功能項目,如右圖。
Anaconda Navigator:以圖形化使用者介面程式,讓使用者以文字型命令列程式,管理安裝模組、建置虛擬環境和切換頻道。
Anaconda Prompt:會顯示命令視窗,輸入命令後按下Enter鍵即可執行,該項必須以系統管理員身分執行。您可使用conda list 或 pip list 命令進行模組查詢、安裝、更新及移除等動作,建議安裝命令的順序為 conda、pip。
Python2.x 與 Python3.x 程式並不相容,Anaconda 虛擬環境可產生新的 Python環境。查看目前所有虛擬環境名稱 conda info -e
如右圖:conda list 命令視窗會按字母順序顯示已安裝模組的名稱及版本。
(三)conda 常用命令
◆ conda list:顯示安裝的模組及其版本
◆安裝模組:conda install 模組名稱
◆ 更新模組:conda update 模組名稱
◆移除模組:conda uninstall 模組名稱
(四)pip 常用命令
◆ pip list:顯示安裝的模組及其版本
◆ 安裝模組:pip install 模組名稱
◆更新模組:pip install -U 模組名稱
◆移除模組:pip uninstall 模組名稱
例1:更新 Spyder 版本→ 可輸入 pip install -U Spyder 即可。
例2:安裝 pygame 模組:請在Anaconda Prompt 命令視窗,輸入命令 pip install pygame
◆資料分析:可安裝大量的資料分析套件
(五) Spyder 編輯器
Anaconda 內建 Spyder 為開發 Python 程式的編輯器。
(六)Python 軟體套件索引『PyPI』
Python Package Index,簡稱PyPI,是Python程式語言當中的軟體倉庫,請連結 https://pypi.org/ 即可搜尋。
三、Spyder 編輯器
◆編輯器介面功能
啟動編輯器:請在程式集→Anaconda3→Spyder 即如下圖。
Spyder 中可撰寫及執行 Python 程式,提供簡單智慧輸入及程式除錯功能,也內建 IPython 命令視窗。
四、程式的編譯與直譯
電腦硬體僅認識『機器語言』(Machine Language)即機器碼(machine code),而機器碼是由許多的『0』與『1』數字所組成(即二進位),因此科學家開發『組合語言』(Assembly Language)使用簡單英文指令取代0與1。之後開發更接近人類語言的『高階語言』(High Level Language),讓程式開發速度大幅提升。如下圖:利用三種語言表示加法指令。
(一)編譯程式
人類撰寫 C++、BASIC等程式語言需藉由編譯器(Compiler)將程式語言翻譯成機器碼,後即可在電腦上執行。若要將程式語言使用在不同平台上,只要使用該平台上的編譯器重新編譯,程式碼即可在不同平台的電腦中執行,非常方便。 如下圖示,編譯程式流程圖。
(二)直譯程式
直譯語言不需編譯即可執行高階語言,它透過直譯器(Interpreter)將程式碼一行一行即時轉換成機器語言執行,雖在修改程式碼後不需編譯,但每次一行一行直譯為機器語言執行,導致執行效率比事先編譯過的程式差。如:Python 為直譯語言(官網 https://www.python.org/),預設附檔名為『.py』。
五、結構化程式設計(Structured Programming)
- 結構化程式不允許無條件任意跳躍指令。
- 常見的程式結構:循序結構、選擇結構、重複結構。
循序(Sequence)結構:電腦依循程式碼的順序,由上而下一行一行往下執行。
選擇(Selection)結構:電腦會依據「條件」,決定要執行哪一區塊程式碼。
重複(Iteration)結構:電腦重複執行同一程式區塊程式碼,直到滿足停止的條件為止。
六、學習資源
中華開放教育平台 https://www.openedu.tw/。Python程式設計入門 https://tinyl.io/4YjD
ewant 育網開放教育平台 https://www.ewant.org/
Python 快速入門教學 https://tinyl.io/4o6s
Python Tkinter 製作 GUI 應用程式入門教學 https://tinyl.io/4r63
Python 專案開發入門的十堂課 https://youtu.be/qjuCnLX1ntM
Teach Python 3 and web design with 200+ exercises - Learn Python 3 - Snakify https://snakify.org/
pygame 製作遊戲 https://tinyl.io/4rCN
python 初學者教學 : https://youtu.be/zdMUJJKFdsU
Python 程式語言與互動式遊戲設計 https://pygamecoures.weebly.com/
>>更多… https://tinyl.io/4o6u