• 沒有找到結果。

Python 07

N/A
N/A
Protected

Academic year: 2021

Share "Python 07"

Copied!
17
0
0

加載中.... (立即查看全文)

全文

(1)

Python

程式設計

(2)

Outline

u

例外處理

u

輸入輸出

(3)

例外處理

u

⼤大部分執⾏行中的錯誤, Python 直譯器 (interpreter)

會以 發起例外 (exception) 的⽅方式來中斷程式的執

⾏行。實際上, 很多情況下我們需要⾃自⾏行控制可能會

產⽣生例外的程式碼, 因為例外並不全然是程式的邏

輯錯誤,例如程式中打算開 啟檔案,然⽽而實際檔名

並不存在,這種情況下,我們需要 的是例外發⽣生後

的處理動作,⽽而⾮非中⽌止程式的執⾏行。

u

凡是可能會產⽣生例外的程式碼, Python 利⽤用

try-except 陳述 (try-try-except statement) 讓程式設計

師⾃自⾏行處理例外。 try-except 為關鍵字 (keyword)

之⼀一,專⾨門⽤用來例外處理 (exception handling) 的。

(4)

為什麼需要例外處理

u 範例 EX07_01.py u ZeroDivisionError u NameError u IndexError u ...

(5)

例外捕捉 1/2

u 例外的捕捉可以使用try/except區塊

u 在try suite中的程式碼會被Python嘗試執行, 一旦產生例外,

會交由except suite中的程式碼來處理

try

:

try suite

except

:

(6)

例外捕捉 2/2

• 以下是例外捕捉的範例

:

此處發生例外 此運算未被執行

(7)

更多的控制敘述

u try…except區塊還支援else和finally敘述句以提供更有彈性的控制

u 若try區塊中並未引發任何例外, 則else區塊則會在try區塊執行完

後被 執行, 反之則不執行 u finally區塊不論例外發生與否, 捕捉與否, 總是會在最後被執行

try

:

try suite  

except

:

except suite

else

:

else  suite  

finally

:

finally suite

(8)

引發例外

u 使用raise 敘述句可引發例外 u 引發例外時所帶有的參數(args)會在例外被印出時同 時被輸出 例外被引發 被捕捉 執行期錯誤

raise

例 外 (args)

給定例外名稱

(9)

自定義例外

• 在

python中一切皆物件, 例外也不例外

• 每個發生的例外都是物件, 而同一類型的例外屬於同一個

類別

• 自定義例外的方法其實就是定義一個新的例外類別

• 簡單的例外定義可以藉由下述的類別定義

class  

例 外 名 稱 (

Exception

): pass

繼承了Exception 參考範例 EX07_02.py

(10)

基本輸入輸出

u 如果要取得使用者的輸入,可以使用sys.argv,使用者輸入

的命令列引數,會收集為字串陣列並給sys.argv參考,索引 0是啟動的模組名稱,之後則陸續是使用者所 輸入的引數。 例如:

(11)

input()

—

在程式執⾏行的過程中,可以使⽤用input()函式取得使⽤用

者的輸⼊入,input()可以指定提⽰示⽂文字,使⽤用者輸⼊入的

⽂文字則以字串傳回。例如:

name = input('請輸⼊入你的名稱:')

print('歡迎 ', name)

(12)

print()

—

print(value, ..., sep=' ', end='\n', file=sys.stdout)

—

可以看到,除了指定值輸出之外,還可以使⽤用sep指

定每個輸出值之間的分隔字元,預設值為⼀一個空⽩白,

可以使⽤用end指定輸出後最後⼀一個字元,預設值是'\n'

(13)

輸出至檔案

—

預設的輸出是系統標準輸出,可以使⽤用file指定⾄至其

它的輸出。例如以下會將指定的值輸出⾄至data.txt:

(14)

open()函式

u 將資料寫入檔案或從檔案讀出,可以使用open()函式:

u open(file,mode="r",buffering=None,encoding=None,

(15)

讀取檔案

u read() u ⼀一次讀取所有的檔案內容,在不使⽤用檔案時,可以使⽤用 close()將檔案關閉以節省資源 u EX07_04.py u readline() u ⼀一次讀取⼀一⾏行內容 u EX07_05.py u readlines() u ⽤用⼀一個串列收集讀取的每⼀一⾏行 u EX07_06.py

(16)

寫資料至檔案

u 使用open()函式時,指定模式為‘w’或’a’,並使用write()

方法進行資料寫入。

u 傳入參數需為字串型態

(17)

Homework 6

—

讀取 stores_old.csv 檔案後,將 sid,name,tel,wifi 篩選

出來並寫⼊入檔案⾄至 stores_new.csv 中

參考文獻

相關文件

舉例: 中一以隨筆一作前測診斷,發現 學生的描寫多欠具體清晰.

有關學生參與全方位學習活動的安全事宜,學校須參考教育局相

Therefore, the materials of Fa Yuan Chu Lin are quite valuable and much emphasized by the scholars who undertake the compilation of lost books. For example, Chou Shu-Jen took

[r]

,所有從中國以外地區抵港的人士同樣須接受十四天的強 制檢疫。違反強制檢疫令會構成刑事罪行,違例者最高可 被罰款

單元:水彩戶外靜物作品實例 視傳系 曾培育

由於自簽的電子證書並非由知名憑證授權單位簽署,因此當使用者進入網 站時會被瀏覽器標注為不安全(例如使用 Google Chrome

目的 向外報告