单元测试
import unittest
def add(a,b):
return a+b
class Mytest(unittest.TestCase):
def test_add(self):
self.assertEqual(8,add(5,3))
if __name__ == '__main__':
unittest.main()
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
常用断言方法
类与测试装置
class Calculator:
def __init__(self,x,y):
self.x = x
self.y = y
def add(self):
return self.x + self.y
def subtract(self):
return self.x - self.y
if __name__ == '__main__':
c = Calculator(5,3)
print(c.add())
import unittest
from calculator import Calculator
class CalculatorTest(unittest.TestCase):
def setUp(self):
self.c = Calculator(5,3)
def test_add(self):
self.assertEqual(8,self.c.add())
def test_subtract(self):
self.assertEqual(2,self.c.subtract())
if __name__ == '__main__':
unittest.main()
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
对象持久化
使用格式化文本
scores = [88,99,77,55]
def write_scores():
with open('data_list.txt','w',encoding='utf8') as f:
f.write(str(scores))
print("文件写入完成")
def read_scores():
with open('data_list.txt','r',encoding='utf8') as f:
lst = eval(f.read())
lst[0] = 99
print(lst)
if __name__ == '__main__':
read_scores()
#写操作生成的data_list.txt
[88, 99, 77, 55]
pickle应用
shelve应用
import shelve
scores = [99,88,77]
student = {'name':'Mike','age':20}
db = shelve.open('shelve_student')
db['s'] = student
db['scores'] = scores
len(db)
2
temp_student = db['s']
temp_student
{'name': 'Mike', 'age': 20}
db['scores']
[99, 88, 77]
del db['scores']
db['scores']
Traceback (most recent call last):
File "D:\Anaconda3\lib\shelve.py", line 111, in __getitem__
value = self.cache[key]
KeyError: 'scores'
字符串本质
open('data1.txt','w',encoding='utf8').write('我爱学习')
4
open('data1.txt','r',encoding='utf8').read()
'我爱学习'
open('data2.txt','w',encoding='utf-8-sig').write('我爱学习')
4
open('data2.txt','r',encoding='utf-8-sig').read()
'我爱学习'
正则表达式
特殊符号与字符
系统工具