今天是看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,不断的实战,才能提高自己的水平,才代表你真正掌握了这些东西。
大家一起加油!
新手上路,若有错漏,欢迎指教。