Python学习13--几个常用的模块

一、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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值