Python 程式設計

第 2 章    執行 Python 程式

(1) 建立目錄架構

∗ 本教材目錄架構:

▸ 範例程式擬依照章節儲存位置,架構如下:

<...>/
   python/
      ch2/
         helloworld.py
         ...
      ch3/
         datetype.py
         ...
      ...
✶ 以上 <...> 指的是 python 目錄的上層目錄,由使用者決定

▸ 利用檔案管理程式建立 pythonpython/ch2 兩個目錄

(2) 安裝 Python 3

∗ Ubuntu:預設已安裝

∗ Windows

▸ 至 http://www.python.org/downloads/ 下載 python-3.7.0-amd64.exe 並儲存檔案

▸ 進行安裝:雙擊該檔案並點選「執行」,然後勾選「Install launcher ...」與「Add Python 3.7 to PATH」並點擊「Install Now」開始安裝

(3) Python 程式有以下三種執行方式

(a) 在終端機使用 Python shell 執行:印出 Hello world 字串

--> 適合測試簡單少量的程式指令

▸ 在 Ubuntu 開啟終端機程式並輸入 python3 指令, 或在 Windows 開啟「命令提示字元」程式並輸入 python 指令:

Python 3.x.x (...)
...
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello world')
Hello world
>>>
>>> 是 Python shell 的提示符號,不需輸入
✶ 輸入 print('Hello world') 指令後,Python 直譯器就會執行指令然後顯示結果 Hello world
# print() 是 Python 的函式,用來列印資料到螢幕
# 'Hello world':Python 字串是由單引號或雙引號所包住的一連串字元
# Python 指令結束不需分號 (這與其他程式語言很不一樣)

▸ 離開 Python shell:

>>> exit()

(b) 利用一般文字編輯器撰寫程式檔,然後執行

--> 適合撰寫大量的程式指令,儲存成程式檔案後再一次執行

▸ 將一群程式指令寫入一個檔案來執行,這些程式稱為「原始程式碼」(Source code)

▸ Python 的程式檔稱為模組 (Module),副檔名為 .py

▸ 在 Ubuntu 中利用 gedit 或在 Windows 中利用「記事本」開啟新檔案,輸入以下內容:

print('Hello world')
✶ 將檔案儲存 (可按 ctrl-s) 在 /python/ch2 目錄下,檔名為 helloworld.py

▸ 執行此模組:

✶ Ubuntu:
$ cd <...>/python/ch2
$ python3 helloworld.py
Hello world
✶ Windows:
$ cd <...>/python/ch2
$ python helloworld.py
Hello world

(c) 利用 IDE (Integrated Development Environment,整合式開發環境) 編輯及執行程式

--> 提供許多程式開發的輔助功能,使開發過程更為輕鬆且快速

▸ 常用 IDE:Atom, Eclipse+PyDev, IPython, PyCharm, Pyzo 等,本教材使用 Pyzo

▸ 安裝 Pyzo:

✶ Ubuntu:
# 安裝相關套件與 Pyzo:
$ sudo apt install python3-pip python3-pyqt5
$ sudo python3 -m pip install pyzo --upgrade
# 新增 Pyzo 程式圖示:
$ sudo gedit /usr/share/applications/pyzo.desktop
[Desktop Entry]
Name=Pyzo
Type=Application
Exec=/usr/local/bin/pyzo
Terminal=false
Icon=/usr/local/lib/python3.6/dist-packages/pyzo/resources/appicons/pyzologo32.png
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=Pyzo
# 安裝圖示
$ sudo desktop-file-install /usr/share/applications/pyzo.desktop
✶ Windows:
# 至 http://www.pyzo.org/start.html 下載 pyzo-4.6.0-win32.exe 並安裝

▸ 設定 Pyzo:啟動 Pyzo 應用程式,並做以下設定

✶ 直譯器:Shell --> Edit shell configurations --> 選擇 exe:
# Ubuntu: /usr/bin/python3.x [v3.x.x]
# Windows: C:\users\<...>\appdata\local\programs\python\python37-64\python.exe [v3.7.0]
--> Done
✶ 設定執行快速鍵為 F5:Settings --> Edit key mappings ... --> (Top tab) Run --> "Run file as script" --> (點選) "Shortcut 1" --> (按下) F5 --> Apply
✶ 如有需要,可以設定中文介面:Settings --> Select language --> Traditional Chinese --> OK --> 重啟 Pyzo
✶ 如果喜歡暗色背景的話 (參考 http://blogs.univ-poitiers.fr/laurentsignac/2013/09/01/sublime-dark-iep/):
# 設定背景:以 base.py 範例檔置換以下檔案
* Ubuntu: /usr/local/lib/python3.6/dist-packages/pyzo/codeeditor/base.py
* Windows: C:\Program Files\pyzo\source\pyzo\codeeditor\base.py
# 調整重複出現與對應括號之顏色:以 appearance.py 範例檔置換以下檔案
* Ubuntu: /usr/local/lib/python3.6/dist-packages/pyzo/codeeditor/extensions/appearance.py
* Windows: C:\Program Files\pyzo\source\pyzo\codeeditor\extensions\appearance.py

▸ 執行程式

✶ 選單點選:檔案 --> 開啟 --> 選擇先前的 helloworld.py 檔案
✶ 按 F5 功能鍵執行程式,即可在 Shell 區看到結果
Python 3.x.x ...
...
...
Running script: "...helloworld.py"
Hello world

(4) 程式的特性

∗ 何謂「程式」(Program)?

▸ 程式是一連串的指令,指示電腦該如何執行運算

▸ 運算可能很複雜,例如在瀏覽器中呈現一個網頁、或將視訊編碼後串流到網路

▸ 運算也可能做一些符號運算,例如搜尋某字串然後將其置換為另一個字串

∗ 程式的基本要素

▸ 輸入 (Input):從鍵盤、檔案、或其他裝置取得資料

▸ 輸出 (Output):從螢幕、檔案、或其他裝置顯示或傳送資料

▸ 數學 (Math):數學運算,例如加減乘除

▸ 邏輯 (Logic):邏輯運算,例如且 (and)、或 (or)、否 (not)

▸ 條件 (Condition):檢查某個條件是否成立,然後決定執行那一部份程式

▸ 重複 (Repetition):重複執行某些指令

∗ 設計程式的策略

▸ 將複雜的問題拆解成為較小、較簡單的單元

▸ 單元應該小到很方便寫程式來解決

∗ 除錯 (Debug)

▸ 撰寫程式是一個複雜的過程,經常會發生錯誤,程式錯誤稱為「蟲」(Bug)

✶ 電腦歷史上的第一隻蟲

▸ 仔細檢視或測試來將錯誤更正就叫做「除錯」(除蟲,Debug)

▸ 程式的三種錯誤:

✶ 語法錯誤 (Syntax error):程式語句或架構違反程式語言的規範
# 例如:打錯字、括號錯誤
✶ 執行時錯誤 (Runtime error):程式執行時才會發生的錯誤
# 例如:應輸入數字但使用者卻輸入了文字,數值除以 0
✶ 語意錯誤 (Semantic error):程式可以正常執行,但結果並非原先設計所要的結果
# 例如:產品售價應打 9 折但程式寫成 8 折,程式不會出錯,但結果並非所規劃

(5) 陳述與表示式

∗ 陳述 (Statement):一個運算指令

例如:

▸ 呼叫函式陳述 (Function call statement)

print()

▸ 指派陳述 (Assignment statement)

numStudents = 50

▸ 條件陳述 (Conditional statement)

if numStudents > 70:
    print('學生人數太多')

▸ 迴圈陳述 (Iteration statement)

for student in students::
    print(student)

∗ 表示式 (Expression):由值、變數、運算子、或呼叫函式組合在一起的運算

▸ 例如:

x = 20 + 30
y = x - 15.6
print(x + round(y))
以上等號右邊算式及 print() 函式的參數都是表示式

▸ 計算 (Evaluate) 一個表示式會產生結果值,上述三個表示式的結果:

x: 50
y: 34.4
print 參數: 84

(6) 輸出指令

∗ print() 是 Python 內建函式,有以下兩種語法

print(<expr>, <expr>, ..., <expr>)     # 可以包含許多表示式
print()   # 印一空行

<expr>:表示式

▸ 每次執行 print() 就是獨立列印一行,而且會自動在各表示式之間加上空格,例如:

print(3+4)
print(3, 4, 3+4)
print()
print('答案是', 3+4)
會產生以下結果:
7
3 4 7

答案是 7

∗ 列印斷行

▸ 在字串中加入 \n 即可斷行 (斷行符號以 \n 表示, 是一個字元,數值為 10,並非 \n 兩個字元),例如:

print('Hello\nworld')
Hello
world

∗ 不斷行列印

▸ 在 print() 加上 end='' 參數即可不斷行,例如兩個列印指令印出單行:

print('Good morning, ', end='')
print('Mr. Smith.')
Good morning, Mr. Smith.

∗ 定位列印

▸ 在字串中加入 \t 即可定位列印,已對齊資料,例如:

print('Hello\tworld')
print('Hello\tagain')
Hello    world
Hello    again

(7) 註解

∗ 註解 (Comment):補充說明程式意義的文字

▸ 當程式越來越大、越來越複雜時,就很難令人了解,這時候就需要寫一些資料來說明

▸ 註解:利用文字來解釋程式的意義, 讓讀者了解;註解只給人看,程式不會執行

▸ Python 註解的格式:

✶ 單行註解:以 # 符號開頭,一直到行末都屬於註解,例如以下藍色部份為程式指令,紅色部份為註解:
avgScore = mathScore*0.6 + engScore*0.4    # 平均分數:數學與英文之權重分別為 60% 與 40%
✶ 可利用單行註解做大量內容之說明,例如:
#--------------------------------------
# 本程式顯示 Python 強大的功能!
# 作者:張三
# 最後修改日期:2018-8-1
# 版權聲明:任何人都可以複製並修改本程式
#--------------------------------------
✶ 多行註解:以三個引號所包含的文字,上述範例亦可如下寫成一個長字串:
'''
-----------------------------------------
本程式顯示 Python 強大的功能!
作者:張三
最後修改日期:2018-8-1
版權聲明:任何人都可以複製並修改本程式
-----------------------------------------
'''

上一章       下一章