Python初學者手冊(14)
python初學者日記
1.儲存資料:json用法
json.jump()用來儲存數字列表,接受兩個實參:要儲存的資料以及可用於儲存資料的檔案物件。
json.load()將這個列表讀取到記憶體中。
例子1:
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = ‘numbers.json’ #通常使用副檔名.json來指出檔案儲存的資料為JSON格式
with open(filename, ‘w’) as f_obj:
json.dump(numbers, f_obj) #此處有縮排。使用函式json.dump() 將數字列表儲存到檔案numbers.json中
例子2:
import json
filename = ‘numbers.json’
with open(filename) as f_obj:
numbers = json.load(f_obj)
print(numbers)
2.
程式碼的重構:
將程式碼劃分為 一系列完成具體工作的函式。這樣的過程被稱為重構。重構讓程式碼更清晰、更易於理解、更容 易擴充套件。
3.
要為函式編寫測試用例,可先匯入模組unittest以及要測試的函式,再建立一個繼承unittest.TestCase的類,並編寫一系列方法對函式行為的不同方面進行測試。 (Python標準庫中的模組unittest提供了程式碼測試工具)
例子:
import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
"""建立 了一個名為NamesTestCase的類,用於包含一系列針對
get_formatted_name()的單元測試"""
#這個類必須繼承 unittest.TestCase類,這樣Python才知道如何執行你
#編寫的測試
def test_first_last_name(self):
#方法名必須以test_打頭,這樣它才 會在我們執行test_name_function.py
#時自動執行
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')
#unittest類最有用的功能之一:一個斷言方法。斷言方法用來核實得到
#的結果是否與期望的結果一致。assertEqual()
unittest.main()
測試類6個常用的斷言方法。
方法 | 用途 |
---|---|
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 中 |
檢測類:
import unittest
from survey import AnonymousSurvey
class TestAnonmyousSurvey(unittest.TestCase):
"""針對AnonymousSurvey類的測試"""
def test_store_single_response(self):
"""測試單個答案會被妥善地儲存"""
question = "What language did you first learn to speak?"
my_survey = AnonymousSurvey(question)
my_survey.store_response('English')
self.assertIn('English', my_survey.responses)
unittest.main()
方法setUp()
在前面的test_survey.py中,我們在每個測試方法中都建立了一個AnonymousSurvey例項,並在 每個方法中都建立了答案。unittest.TestCase類包含方法setUp(),讓我們只需建立這些物件一 次,並在每個測試方法中使用它們。如果你在TestCase類中包含了方法setUp(),Python將先執行 它,再執行各個以test_打頭的方法。
import unittest
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
"""針對AnonymousSurvey類的測試"""
def setUp(self):
# 建立一個調查物件和一組答案,供使用的測試方法使用
question = "What language did you first learn to speak?"
self.my_survey = AnonymousSurvey(question)
self.responses = ['English', 'Spanish', 'Mandarin']
def test_store_single_response(self):
"""測試單個答案會被妥善地儲存"""
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0], self.my_survey.responses)
def test_store_three_responses(self):
"""測試三個答案會被妥善地儲存"""
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response, self.my_survey.responses)
unittest.main()
方法setUp()做了兩件事情:建立一個調查物件;建立一個答案列表
相關文章
- 給Python初學者的最好練手專案Python
- 致 Python 初學者Python
- 致 Python 初學者們!Python
- python學習手冊(8)Python
- python學習手冊(10)Python
- python學習手冊(4)Python
- python3.7-初學者-20Python
- Python適合初學者學習嗎?Python
- Python和PHP初學者先學哪個好?PythonPHP
- 初學者Python和C先學哪個好?Python
- Python練手例子(14)Python
- 為什麼Python適合初學者 學Python大概要多久Python
- 初學Python必備十大經典案例(初學者必看)❃✿❈❉❀❁下Python
- 14 hashlib 案例2 使用者註冊
- Python 初學者容易踩的 5 個坑Python
- Python初學者需要注意的問題Python
- Python學習手冊之類和繼承Python繼承
- Python學習手冊之控制結構(二)Python
- Python學習手冊(第4版)PDF版Python
- 初學PythonPython
- Python學習手冊之Python介紹、基本語法(一)Python
- 【python學習手冊】02|使用Python提取中文關鍵詞?Python
- Python快速教程 (手冊)Python
- 作為初學者,Python和PHP哪個好學習?PythonPHP
- 致初學者:如何學好Python這門程式語言?Python
- 給初學者一些學習Python的建議Python
- 初學者Python和C先學哪個好?小白必看!Python
- 為何Python適合初學者 一般Python要學習多久Python
- Python PK C++,初學者該如何挑選?PythonC++
- sqlmap使用者手冊SQL
- MeterSphere開發者手冊
- PuTTY使用者手冊
- 初學Python——字典Python
- Python適合初學者或者0基礎小白學習嗎?Python
- 初學者Mybatis的初級使用MyBatis
- Python-秘籍手冊-全-Python
- [Django青銅修煉手冊] 初識DjangoDjango
- 每週一書《Python資料科學手冊》分享!Python資料科學