Python基础操作4

本文介绍了Python的基础操作,包括单元测试的使用、数学运算、随机数生成、日期时间处理和正则表达式。深入探讨了如何进行单元测试,演示了math、datetime模块的运用。此外,还讲解了Python的并发编程,如线程、锁、队列、多进程以及concurrent.futures模块,强调了不同场景下选择多线程或多进程的优势,并提供了装饰器和参数化装饰器的概念,最后阐述了csv文件的读写操作。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值