第二阶段结束,这里对python基础的模块进行点点补充,同时也是为了开始学数据库做准备,excel需要不断的练习,才能将这些知识点进行消化

九 补充模块

9.1 time模块

1.睡眠 - sleep(时间)

2.获取当前时间 - time()

时间戳 - 通过时间差来表示具体的时间(指定时间到1970年1月1日0时0分0秒(格林威时间)(单位:秒)

时间戳保存时间的优点:1)节约内存 2)方便加密

t1 = time.time()
print(t1) #1661476364.9644117

3.获取本地当前时间

localtime() - 获取当前时间(结构体时间)

localtime(时间戳) - 将指定时间戳转换成本地时间对应结构体时间

t2 = time.localtime()
print(t2) #time.struct_time(tm_year=2022, tm_mon=8, tm_mday=26, tm_hour=19, tm_min=13, tm_sec=8, tm_wday=4, tm_yday=238, tm_isdst=0)

可以单独提取

print(t2.tm_year,t2.tm_mon,t2.tm_mday) #2022 8 26

t3 = time.localtime(0)
print(t3) #time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

t4 = time.localtime(1661476364.9644117)
print(t4) #time.struct_time(tm_year=2022, tm_mon=8, tm_mday=26, tm_hour=9, tm_min=12, tm_sec=44, tm_wday=4, tm_yday=238, tm_isdst=0)

print(f'{t4.tm_year}{t4.tm_mon}{t4.tm_mday}日') #2022年8月26日

4.将结构体时间转换成时间戳 - mktime(结构体时间)

result = time.mktime(t3)
print(result) #0.0

5.时间字符串和结构体时间之间的相互转换

1)结构体时间转换成字符串 - strftime(时间格式,结构体时间)

% Y - 年

% m - 月

% d - 日

% H - 时(24小时)

% M - 分

% S - 秒

% z

% a - 缩小星期几

% A - 全写星期几

% b - 简称月名

% B - 全称月名

% c - 星期几 几月 几号 时间

% I - 12小时制

% p - 上午、下午

# 'xxx年xx月xx日'
result = time.strftime('%Y年%m月%d日')
print(result)

# 星期 xx:xx
result = time.strftime('%a %H:%M',t4)
print(result) #Fri 09:12

# 上午 xx:xx  下午 xx:xx
result = time.strftime('%p %H:%M',t4)
print(result) #AM 09:12

2)字符串时间转换成结构体时间

 # '2021/3/4'
result = time.strptime('2021/3/4','%Y/%m/%d')
print(result)

result = time.strptime('2022-5-10 19:30', '%Y-%m-%d %H:%M')
print(result)

9.2 datetime模块

from datetime import datetime, timedelta
from time import localtime

1.datetime类

1)获取当前时间

t1 = datetime.today()
print(t1, type(t1))

t2 = datetime.now()
print(t2)

2)根据时间值创建时间对象

t3 = datetime(2020, 12, 5)
print(t3)       # 2020-12-05 00:00:00

t4 = datetime(2022, 3, 4, 12, 50, 30)
print(t4)

3)根据时间字符串创建时间对象

t5 = datetime.strptime('2021/3/5', '%Y/%m/%d')
print(t5)       # 2021-03-05 00:00:00

4)单独获取具体的时间信息

print(t5.year)
print(t5.month)
print(t5.day)
print(t5.hour)
print(t5.minute)
print(t5.second)
print(t5.weekday())         # 星期值的取值范围:0~6,0表示星期1

5)将时间对象转换成字符串时间

# xxxx年xx月xx日
result = t4.strftime('%Y年%m月%d日')
print(result)       # 2022年03月04日

6)求时间差: 时间对象1 - 时间对象2 - 返回时间间隔对象(通过时间间隔对象可以单独获取间隔时间的完整天数和秒数)

t1 = datetime(2022, 5, 3, 9, 10)
t2 = datetime(2022, 10, 1, 10, 5)
result = t2 - t1
print(result, type(result))       # 151 days, 0:55:00
print(result.days)      # 151
print(result.seconds)   # 3300

7)时间对象转换成结构体

result = t1.timetuple()
print(result)       # time.struct_time(tm_year=2022, tm_mon=5, tm_mday=3, tm_hour=9, tm_min=10, tm_sec=0, tm_wday=1, tm_yday=123, tm_isdst=-1)

8)时间对象转时间戳

result = t1.timestamp()
print(result)
print(localtime(result))

2.timedelta - 时间间隔类

t1 = datetime(2022, 10, 1, 10, 8, 30)
print(t1)       # 2022-10-01 10:08:30
# 10天以后对应的时间
result = t1 + timedelta(days=10)
print(result)       # 2022-10-11 10:08:30

# 32天前对应的时间
result = t1 - timedelta(days=30)
print(result)

# 30分钟以后
result = t1 + timedelta(minutes=30)
print(result)

# 5天6小之前
result = t1 - timedelta(days=5, hours=6)
print(result)

# 3周以后
result = t1 + timedelta(weeks=3)
print(result)

9.3 random模块

from random import randint, random, randrange, sample, choice, choices, shuffle

1.随机小数:random
random() - 产生0到1的随机小数

print(random())

# 产生0~20之间的随机小数
# 0*20~1*20  -> 0 ~ 20
print(random()*20)

# 产生5~30之间的随机小数
# 0*25~1*25 -> 0+5 ~ 25+5  ->  5 ~ 30
print(random()*25+5)

# 控制小数的小数位数(四舍五入):round(小数, 需要保留的小数位数)
print(round(3.1415926, 2))      # 3.14

2.随机获取指定等差数列中的一个数字:randrange(起始值,终止值,步长)

print(range(1, 10, 2))      # 1, 3, 5, 7, 9
print(randrange(1, 10, 2))

3.sample(序列, 个数) - 随机获取指定序列中指定个数个元素,产生一个新的列表(无放回抽样)

result = sample([10, 34, 78, 90], 3)
print(result)

result = sample('abcd', 1)
print(result)

4.choice(序列) - 随机获取一个元素

result = choice([10, 34, 78, 90])
print(result)

5.choices(序列,权重,求和权重,数量) - 有放回抽样

result = choices([10, 34, 78, 90], k=3)
print(result)

# 权重列表中的数字代表对应选项的份数
result = choices(['1000万', '10000', '100', '0'], [1, 2, 100, 200], k=2)
print(result)

6.洗牌 - shuffle(列表)

nums = [10, 34, 78, 90]
shuffle(nums)
print(nums)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值