今天是看Python理論部分的最後一塊,檔案的讀寫,Python中的異常和用Python測試。
檔案的讀寫
讀
with open('檔案名.檔案字尾名') as 檔案對象名:
變量名 = 檔案對象名.read()
print(變量名)
- 函數open():接受一個參數——要打開檔案的檔案名。在目前執行檔案的目錄查找指定檔案(參數).
- 關鍵字with:不再需要在通路檔案後關閉。open()傳回的檔案對象隻在with代碼塊内可用
- read方法讀取内容,讀取到檔案末尾會傳回一個空字元串,這個字元串列印時會有空行,可通過rstrip()方法消除。
寫
with open('檔案名.檔案字尾名','w') as 檔案對象名:
變量名 = 檔案對象名.write("寫入内容")
第二個參數:
- ‘w’:寫入模式(會覆寫之前内容)
- ‘r’:讀取模式(不寫預設r)
- ‘a’:附加模式(在檔案末尾繼續寫,不會覆寫之前)
- ‘r+’:讀取和寫入模式(寫會覆寫之前内容)
- ‘r+a’:可讀寫(不會覆寫之前内容)
- ‘b’:二進制資料
異常
try–except–else:
try:
執行語句
except 異常名:
提示資訊
#pass,在此處寫pass代表什麼都不做
else:
依賴執行語句的語句
當然,else代碼塊不是必須的,雖然常常會用到;而try和except必須是成對出現的。
測試
一些概念:
- 單元測試:核實函數的某個方面沒有問題
- 測試用例:一組單元測試,一起核實函數在各種情形下的行為都符合要求
- 全覆寫測試用例:一整套單元測試,涵蓋了各種可能的函數的使用方式。
單元測試
#導入子產品unittest
import unittest
#導入要測試的函數
from 檔案名 import 函數名
#建立一個繼承unittest.TestCase的類
class 類名(unittest.TestCase):
#注意,編寫測試方法時必須以test_打頭
測試代碼
#運作測試
unittest.main()
運作測試後會出現結果
. 表示測試通過
E 表示有測試出現錯誤
F 表示測試出現斷言失敗
測試代碼中我們常會用到這些斷言方法:
方法 | 用途 |
---|---|
assertEqual(a,b) | 核實a==b |
assertNotEqual(a,b) | 核實a!=b |
assertTrue(x) | 核實x為True |
assertFalse(x) | 核實x為False |
assertIn(item,list) | 核實item在list中 |
assertNotIn(item,list) | 核實item不在list中 |
類測試
我們常常會将一些方法封裝在一個類中,如何對類進行測試呢?和對方法進行測試并沒有太多差别。在對類進行測試時,我們會面對每一個測試方法都要建立一個類執行個體的情況,Python給我們提供了setUp()方法,在測試類的定義一個setUp方法,便可以避免重複建立對象的情況,用setUp建立的對象即可。
#導入unittest子產品
import unittest
#導入要測試的類
from 檔案名 import 類名
#建立一個繼承uniittest.TestCase的測試類(常以Test開頭命名)
class Test1(unittest.TestCase):
#setUp方法
def setUp(self):
"""建立需要測試的類的對象"""
self.xx = 類名(需要的參數)
#測試方法
def test_1(self):
#直接使用setUp中建立好的對象
self.xx.方法
unittest.main()
關于Python的理論部分學習就告一段落,但理論部分的學習并不能代表什麼,隻有不停的coding,不斷的實戰,才能提高自己的水準,才代表你真正掌握了這些東西。
大家一起加油!
新手上路,若有錯漏,歡迎指教。