一、math模块
import math
(1)pi:圆周率pi
print(math.pi)
输出:
3.141592653589793
(2)e:自然常数e
print(math.e)
输出:
2.718281828459045
(3)ceil:向上取整
a = 3.5
b = -3.5
print(math.ceil(a))
print(math.ceil(b))
输出:
4
-3
(4)floor:向下取整
a = 3.5
b = -3.5
print(math.floor(a))
print(math.floor(b))
输出:
3
-4
(5)exp:返回e的x次幂
print(math.exp(2))
输出:
7.38905609893065
(6)pow:返回x的y次幂,需要注意的是返回结果是浮点类型
print(math.pow(2,5))
输出:
32.0
(7)log:返回以base为底,x的对数,base默认以e为底【log(x, base=None)】
print(math.log(4,2))
输出:
2.0
(8)fabs:返回float类型的绝对值
a = -3
print(math.fabs(a))
输出:
3.0
(9)factorial:阶乘
print(math.factorial(3))
输出:
6
(10)fmod:取余 【商是向0取整】
print(math.fmod(-5,2))
输出:
-1.0
(11)fsum:累加和
print(math.fsum([1,2,3,4,5]))
输出:
15.0
(12)gcd:最大公约数
print(math.gcd(12,8))
输出:
4
(13)sqrt:开根号
print(math.sqrt(2))
输出:
1.4142135623730951
二、random模块
import random
(1)random():产生0到1之间的小数,包含0,不包含1
print(random.random())
返回:
0.5931018483986201
(2)randint(a,b):随机产生从a到b的整数,包括a和b
print(random.randint(1,3))
输出:
3
(3)randrange(a,b,step):随机产生从a到b之间数,包含a不包含b,可以定义step步长
print(random.randrange(1,9,2))
print(random.randrange(10,1,-2))
输出:
1
2
(4)uniform(a,b):返回a和b之间浮点数,包含a和b
print(random.uniform(1,2))
输出:
1.5939627724361398
(5)choice(seq):从seq中随机选择一个元素
print(random.choice([1,2,3,4,5]))
返回:
4
(6)choices(seq,weights,k):从seq中取出k个数,按照weights的比率取
print(random.choices([1,2,3,4,5],weights = [1,10,100,100,1000],k=2))
输出:
[5, 5]
(7)sample():从序列中取出k个值,取出的值不会放回去进行再抽样
print(random.sample([1,2,3,4,5],2))
输出:
[5, 2]
(8)shuffle():就地洗牌
seq = [1,2,3,4,5]
print(random.shuffle(seq))
print(seq)
输出:
None
[5, 1, 3, 2, 4]
三、time模块
(1)timezone:返回与UTC(本初子午线上)相差的时间(秒数)
import time
print(time.timezone)
输出:
-28800
注释:28800 s=8 H(东八区)
(2)time()返回从新纪元时间到当前时间走过的秒数,小数点代表微秒
print(time.time())
输出:
1593433597.7662966
(3)localtime(s):参数是秒
如果没有参数返回的是本地时间
如果有参数,则返回的是从新纪元走过的时间
返回的是元组
import time
print(time.localtime())
print(time.localtime(1))
输出:
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=29...
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
(4)gmtime(s):如localtime一样,不同的是返回的是UTC时间
print(time.gmtime())
print(time.gmtime(1))
输出:
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=29, tm_hour=11...
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
(5)mktime(timetuple)返回的是timetuple到新纪元时间走过的秒数
dt = time.localtime()
print(time.mktime(dt))
输出:
1593398554.0
(6)asctime(timetuple)返回时间元组对应str类型
import time
dt = time.localtime()
print(time.asctime(dt))
输出:
Mon Jun 29 19:44:03 2020
(7)ctime(s) 从新纪元时间+s秒,返回本地的时间字符串
如果没有参数,返回的是本地时间
如果有参数,返回的从新纪元时间+s秒后返回本地时间的字符串
print(time.ctime())
print(time.ctime(1))
输出:
Mon Jun 29 19:45:33 2020
Thu Jan 1 08:00:01 1970
(8)sleep(s)
import time
print(time.localtime())
time.sleep(1)
print(time.localtime())
输出:
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=29, tm_hour=20, tm_min=7, tm_sec=29, tm_wday=0, tm_yday=181, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=29, tm_hour=20, tm_min=7, tm_sec=30, tm_wday=0, tm_yday=181, tm_isdst=0)
(9)clock():注意在window下和linux下不同
windows首次返回的是cpu的计算时间
再次调用返回的距离首次调用时间经历的时间
print(time.clock())
time.sleep(1)
print(time.clock())
time.sleep(1)
print(time.clock())
输出:
4e-07
1.0005421
2.0011364
(10)perf_counter 对clock进行的改进 window和linux返回的都是计算时间
cpu计算时间差可以用来统计经历的时间长度
包含调用sleep函数暂停的时间
start = time.perf_counter()
time.sleep(2)
end = time.perf_counter()
print(end-start)
输出:
2.0002245
(11)procss_time() :与perf_counter用法基本一致,不同在于不包含调用sleep的时间
start2 = time.process_time()
time.sleep(1)
end2 = time.process_time()
print(end2-start2)
输出:
0.0
(12)strftime(格式,时间元组):能够将时间元组转成字符串(按固定的格式)
dt = time.localtime()
print(time.strftime("%Y/%m/%d",dt))
print(time.strftime("%Y-%m-%d %H:%M:%S"))
输出:
2020/06/29
2020-06-29 20:22:24
(13)strptime(字符串,格式):返回字符串指定的时间元组,相当于strftime的逆操作
print(time.strptime("2020-06-29 20:20:20","%Y-%m-%d %H:%M:%S"))
输出:
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=29, tm_hour=20, tm_min=20, tm_sec=20, tm_wday=0, tm_yday=181, tm_isdst=-1)
四、datetime模块
一、date类
(1) 构造器 创建对象,构造date类型的对象
from datetime import date
d = date(2020,1,1)
print(d,type(d))
输出:
2020-01-01 <class 'datetime.date'>
(2)类属性
max:最大日期
min:最小日期
resolution:date对象之间的最小间隔
print(date.max)
print(date.min)
print(date.resolution)
输出:
9999-12-31
0001-01-01
1 day, 0:00:00
(3)类方法
都是创建新的date
date.today():返回当前日期,date对象
date.fromtimestamp():将指定的时间戳转换成date类型的对象
date.fromordinal():将指定的时间序号转换成date类型的对象
print(date.today())
print(date.fromtimestamp(0))
print(date.fromtimestamp(time.time()))
print(date.fromordinal(10))
输出:
2020-06-29
1970-01-01
2020-06-29
0001-01-10
(4)实例属性
year/month/day:对象的年月日
d = date(2020,1,2)
print(d.year)
print(d.month)
print(d.day)
输出:
2020
1
2
(5)实例方法
1、ctime():返回指定date对象的字符串日期,没有格式化的日期
d = date(2020,1,2)
print(d.ctime())
输出:
Thu Jan 2 00:00:00 2020
2、replace(year,month,day):不是就地改变,是新创建date类型的对象
d = date(2020,1,2)
print(d.replace(2019,6,6),d)
输出:
2019-06-06 2020-01-02
3、timetuple():返回日期对象的时间元组
d = date(2020,1,2)
print(d.timetuple())
输出:
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=2, tm_isdst=-1)
4、weekday():返回日期对象所在的星期几 (0–6)
d = date(2020,1,2)
print(d.weekday())
输出:
3
5、toordinal():返回日期对象对应的序数
d = date(2020,1,2)
print(d.toordinal())
输出:
737426
6、strftime():将日期对象转换成字符串(格式化的字符串)
d = date(2020,1,2)
print(d.strftime("%Y-%m-%d"))
输出:
2020-01-02
二、time类
(1) 构造器: 创建time类型的对象 时分秒
t = time(3,4,5)
print(t,type(t))
输出:
03:04:05 <class 'datetime.time'>
(2)类属性
print(time.max)
print(time.min)
print(time.resolution)
输出:
23:59:59.999999
00:00:00
0:00:00.000001
(3)实例属性
时间对象的时、分、秒、微秒
t = time(3,4,5)
print(t.hour,t.minute,t.second,t.microsecond)
输出:
3 4 5 0
(4)实例方法
1、replace():将当前的time对象时分秒进行替换,新创建time对象,不是原地修改
t = time(3,4,5)
print(t.replace(4,5,6),t)
输出:
04:05:06 03:04:05
2、strftime():从time转换str 按格式
t = time(3,4,5)
print(t.strftime("%H:%M:%S"))
输出:
03:04:05
三、datetime类
(1)构造方法,实例化出datetime对象 年月日时分秒
t = datetime(2020,1,1,11,22,33)
print(t,type(t))
输出:
2020-01-01 11:22:33 <class 'datetime.datetime'>
(2)类属性
print(datetime.max)
print(datetime.min)
print(datetime.resolution)
输出:
9999-12-31 23:59:59.999999
0001-01-01 00:00:00
0:00:00.000001
(3)类方法
与time中方法类似
print(datetime.today())
print(datetime.now())
print(datetime.utcnow())
print(datetime.fromtimestamp(time.time()))
print(datetime.fromordinal(2))
输出:
2020-06-29 22:08:01.413446
2020-06-29 22:08:01.413446
2020-06-29 14:08:01.413446
2020-06-29 22:08:01.413446
0001-01-02 00:00:00
(4)实例属性
t = datetime(2020,1,1,12,12,12)
print(t.year,t.month,t.day,t.hour,t.minute,t.second,t.microsecond)
输出:
2020 1 1 12 12 12 0
(5)实例方法
返回当前datetime对象对应的date对象
dt = datetime(2020,1,1,12,12,12)
print(dt.date())
print(dt.time())
print(dt.ctime()) # 没有格式化的str
print(dt.replace(month=5,hour=6))
print(dt.timetuple())
print(dt.weekday())
print(dt.toordinal())
print(dt.strftime("%Y/%m/%d %H:%M:%S"))
输出:
2020-01-01
12:12:12
Wed Jan 1 12:12:12 2020
2020-05-01 06:12:12
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=1, tm_hour=12, tm_min=12, tm_sec=12, tm_wday=2, tm_yday=1, tm_isdst=-1)
2
737425
2020/01/01 12:12:12
五、calendar模块
import calendar
print(calendar.month(2020,6))
输出:
June 2020
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
相关参数说明:
w:日期之前的间隔字符
l:每星期的行数
c:每个月间隔的字符
import calendar
print(calendar.calendar(2020,w=2,l=1,c=6))
输出:
2020
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 1 2 1
6 7 8 9 10 11 12 3 4 5 6 7 8 9 2 3 4 5 6 7 8
13 14 15 16 17 18 19 10 11 12 13 14 15 16 9 10 11 12 13 14 15
20 21 22 23 24 25 26 17 18 19 20 21 22 23 16 17 18 19 20 21 22
27 28 29 30 31 24 25 26 27 28 29 23 24 25 26 27 28 29
30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 1 2 3 1 2 3 4 5 6 7
6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
27 28 29 30 25 26 27 28 29 30 31 29 30
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 1 2 1 2 3 4 5 6
6 7 8 9 10 11 12 3 4 5 6 7 8 9 7 8 9 10 11 12 13
13 14 15 16 17 18 19 10 11 12 13 14 15 16 14 15 16 17 18 19 20
20 21 22 23 24 25 26 17 18 19 20 21 22 23 21 22 23 24 25 26 27
27 28 29 30 31 24 25 26 27 28 29 30 28 29 30
31
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 1 1 2 3 4 5 6
5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13
12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20
19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27
26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31