Python基础操作4
单元测试
我们编写程序后,通常会对程序做测试,测试又分为单元测试,集成测试,系统测试,验收测试和回收测试等。我们这里主要说的是最基本的单元测试。进行单元测试时需要导入Python自带的unittest包。下面以一个简单的单元测试例子来说明:
import unittest
def add(a,b):
return a+b
#自己定义测试类继承自unittest.TestCase类
class mytest(unittest.TestCase):
def test_add(self):
self.assertEqual(8,add(5,3))#assertEqual时unittest.TestCase定义的方法,用来判断两个值是否相等
unittest.main()
其运行结果如下:
SystemExit: True
下面着重说一下 unittest.TestCase()类下定义的断言函数都有哪些
1、self.assertTrue() 断言是否为真
2、self.assertalmostEqual() 断言是否几乎相等
3、self.assertIs() 断言是否为同引用
4、self.assertIsNone() 断言是否为空
5、self.assertIsInstance() 断言是否为为某个类型
6、self.assertGreater() 断言是否大于
7、self.assertGreaterEqual() 断言是否大于等于
下面我们来看几个简单的例子:
s = 'hello world'
person = {
'name':'tom','age':20}
import unittest
class mytest2(unittest.TestCase):
def test_assert_method(self):
self.assertTrue('hello' in s)
self.assertalmostEqual(3.3,1.1+2.2)
self.assertIs(True,1)
self.assertIsNone(s)
self.assertIsInstance(s,str)
self.assertIsInstance(person.get(age),int)
unittest.main()
#将上述方法一条条进行测试
#其返回结果:
SystemExit: True
SystemExit: True
SystemExit: True
SystemExit: Flase
SystemExit: True
SystemExit: True
取整与四舍五入
a = -123445667.345134
b = 123456789.23456
c =520
#占位符的使用
'数值 :{}'.format(c)
#等同于
f'数值:{c}'
#转换格式的占位符
'数值:{:f}'.format(c) #将c转换为浮点数
#等同于
f'数值:{c:f}' #第二个f是浮点数的f
f'数值:{a:,f}' #f前面的逗号是 把数字以千分位 分割
f'数值:{a:,.2f}' #f前面的.2是指小数点后面保留两位小数
#其运行结果分别是:
'数值 :520'
'数值 :520'
'数值:520.000000'
'数值:520.000000'
'数值:-123,445,667.345134'
'数值:-123,445,667.35'
使用math 模块
import math
math.trunc(a)#截断
math.floor(a)#向下取整
math.ceil(a)#向上取整
#全局函数round()
round(a) #四舍五入
#其运行结果分别为:
-123445667
-123445668
-123445667
-123445667
#需要注意a是负数
随机数
#产生从1-10 的十个数并以列表形式保存
lst = list(range(1,11))
print(lst)
import random
random.choice(lst) #随机选取列表中的某个数值
random.sample(lst,3) #随机选取列表中的3个数值
random.shuffle(lst) #随机改变列表的顺序
print(list)
random.randint(1,10) #随机产生范围内的一个整数
random.random() #随机长生一个小于1的浮点数
#其返回结果分别是:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
5
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[4, 6, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 7, 6, 8, 5, 2, 10, 9, 4]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
5
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
0.3435087924725396
日期和时间
datetime模块下的date类表示年月日,time类表示时分秒,datetime类型表示年月日时分秒
datetime.MAXYEAR #python支持的最大年份
datetime.MINYEAR #python支持的最小年份
#其运算结果为:
9999
1
#datetime.date.today()函数表示今天
datetime.date.today()
#其运行结果为:
datetime.date(2019, 6, 26)
#我们将其赋给一个变量
today = datetime.date.today()
today.year
today.month
today.day
#其运行结果为:
2019