Python部分常用模块(time、datatime、random)方法及其基本应用场景举例

时间模块

1. time模块

1.1 时间显示常用的三种模式

1.1.1 时间戳:从1970-01-01年到现在经过的秒数 应用:主要用来计算时间间隔,如计算一个函数运行的时间
import time
print(time.time())           # time.time为时间戳函数
1.1.2 按照某种指定格式显示的时间:如当前时间:2022-8-24 02:49 应用:主要用于展示当前时间,如日志功能
import time
print(time.strptime('%Y-%m-%d %H:%M:%S %p')) 
# 每一个字母(大小写敏感)都是固定的,由首开始依次对应对应年、月、日、小时、分钟、秒、上午or下午
# 详情可点开time.strptime查看格式format
1.1.3 结构化的时间  应用:查看当日是星期几、是一年中的第几天等
import time
res = time.localtime()    
# 显示现在的时间,并显示当前是星期几、是一年中的第多少天  显示今天星期几(res.tm_wday)、一年中第几天等
print(res)

1.2 三种模式之间的转换:

1.2.1 将结构化的时间转换为时间戳 struct_time --> timetamp
import time
s_time = time.localtime()
print(time.mktime(s_time))      # 应用的是mktime()方法
1.2.2 将时间戳转换为结构化时间 timetamp --> struct_time
import time
print(time.localtime(time.time()))    # 应用的是localtime()方法
1.2.3 struct_time --> 字符串格式
import time
s_time = time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S', s_time))    # 应用的是strftime()方法
1.2.4 字符串格式 --> struct_time
import time
str_time = '2000-10-11 09:11:00'
print(time.strptime(str_time, '%Y-%m-%d %H:%M:%S'))    # 应用的是strptime()方法
# 需求:将字符串格式转化为时间戳:                  # 字符串格式 --> timetamp
# 应用场景:用户在续约自己的VIP后,为其VIP时间加上相应的时长
但从文件中拿到的是用户VIP的注册时间,是字符串,不能进行加减,故需转为时间戳进行计算
# 各位可以通过已经写出的两种模式之间的转换而满足该需求,这里不过多赘述

1.3 time模块的一些其他方法

time.gmtime()    # 返回世界标准时间,即位于本初子午线的时间
time.asctime()   # time.asctime()相当于time.strptime('%Y-%m-%d %H:%M:%S'),更省事,不过日期是英文的

2.datatime模块

2.1 datatime常用方法

import datetime
datetime.datetime.now()      # 返回现在的时间
datetime.datetime.now() + datatime.timedelta(day=n)   
# 返回n天前/后(-/+)的时间,timedelta用于时间的加减,也可以以Week等为单位操作

2.2 datatime模块的一些其他方法

datatime.datatime.utcnow()  # 返回世界标准时间
datatime.datetime.fromtimestamp(timetamp)    # 是一种将时间戳 --> 字符串格式较为关键的方法
# 参数timetamp为需要转换的时间戳

2.3 datatime的应用举例

基于实际需求可与time模块相互补充,其优点在于获取常见的显示时间的模式是较为简单的

random模块

1. random模块常用方法的使用与说明

import random
print(random.random())      # 一个大于0且小于1之间的浮点数
print(random.randint(1, 3))  # [1,3]区间内任意一个整数
print(random.randrange(1, 5))    # [1,5)的任意一个整数  前开后闭
print(random.choice([1, '23', [8, 12] ]))  
# 该列表中任意一个元素,可以是1,可以是字符串23,可以是列表[8,12]
print(random.sample([1, '23', [5, 6]], 2))  # 该列表中任意n个元素组成的列表
print(random.uniform(1, 3))  # 一个大于1小于3的数

item = [1, 3, 4, 5, 6, 7, 8]
random.shuffle(item)     # 随机打乱一个列表元素的排列顺序
print(item)

2. random模块应用举例:随机验证码

import random
prove_code_db = 'asoidj12312'       # 创建一个可能出现元素的集合的字符串
res = ''
for i in range(6):
    res += random.choice(prove_code_db)   # 在集合中随机选一个后就加到空字符串后
print(res)

以上部分代码建议各位可以封装到自己的常用函数包里,有需求时直接调用
不正之处,恳请各位不吝批判指正

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值