我是靠谱客的博主 腼腆摩托,最近开发中收集的这篇文章主要介绍Python之时间模块和随机模块1 time模块2 datetime模块3 随机数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

time、datetime、random

  • 1 time模块
    • 1.1 睡眠:sleep(时间)
    • 1.2 获取当前时间:time()
    • 1.3 获取本地当前时间:localtime()
    • 1.4 将结构体时间转换成时间戳:mktime(结构体时间)
    • 1.5 时间字符串和结构体时间之间的相互转换
      • 1.5.1 结构体时间转换成字符串
      • 1.5.2 字符串时间转换成结构体时间
  • 2 datetime模块
    • 2.1 datetime类
      • 2.1.1 获取当前时间
      • 2.1.2 根据时间值创建时间对象
      • 2.1.3 根据时间字符串创建时间对象
      • 2.1.4 单独获取具体的时间信息
      • 2.1.5 将时间对象转换成字符串时间
      • 2.1.6 求时间差:时间对象1-时间对象2
      • 2.1.7 时间对象转换成结构体
      • 2.1.8 时间对象转时间戳
    • 2.2 timedelta 时间间隔类
  • 3 随机数
    • 3.1 随机小数:random()
    • 3.2 randrange(起始值,终止值,步长)
    • 3.3 sample(序列,个数)
    • 3.4 choice(序列)
    • 3.5 choices(序列,权重,求和权重,数量)
    • 3.6 洗牌:shuffle(列表)

1 time模块

先导入time模块。

import time

1.1 睡眠:sleep(时间)

sleep(2)
#加载完后休息两秒,里面参数的单位是秒,再继续加载

1.2 获取当前时间:time()

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

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

t1 = time.time()
print(t1)
#1661477265.853159
一般不用文本形式存储数据:"2022-8-26 09:15"

1.3 获取本地当前时间:localtime()

localtime() ——获取当前时间(结构体时间)
localtime(时间戳) —— 将指定时间戳转换成本地时间对应结构体时间

t2 = time.localtime()
print(t2)
#time.struct_time(tm_year=2022, tm_mon=8, tm_mday=26, tm_hour=9, tm_min=27, tm_sec=45, 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(1661477481.495538)
print(t3)

1.4 将结构体时间转换成时间戳:mktime(结构体时间)

time.mktime(结构体时间)

result=time.mktime(t2)
print(result)

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

1.5.1 结构体时间转换成字符串

time.strftime(时间格式,结构体时间)

# 'xxxx年xx月xx日'
result = time.strftime('%Y年%m月%d日', t4)
print(result)
# 星期 xx:xx
result = time.strftime('%a %H:%M', t4)
print(result)
# Fri 09:11
# 上午 xx:xx 、下午 xx:xx
result = time.strftime('%p %H:%M', t4)
print(result)
# AM 09:11

1.5.2 字符串时间转换成结构体时间

time.strptime(字符串时间,结构体时间)

print(time.strptime('2022/8/26','%Y/%m/%d'))
print(time.strptime('2022-8-26 9:52','%Y-%m-%d %H:%M'))

2 datetime模块

提供多种方式处理日期和时间。

2.1 datetime类

datetime类的使用方法是首先创建一个datetime对象,然后通过对象的方法和属性显示日期及时间。

from datetime import datetime, timedelta
from time import localtime

2.1.1 获取当前时间

使用datetime.now()获得当前日期和时间对象,返回一个datetime类型,精确到微秒。

t1 = datetime.today()
print(t1)
t2 = datetime.now()
print(t2)

2.1.2 根据时间值创建时间对象

直接使用datetime()构造一个日期和时间对象,返回一个datetime类型,表示指定的日期和时间,可以精确到微秒。

t3 = datetime(2020, 12, 5)
print(t3)
#表示年月日
t4 = datetime(2022, 8, 26, 10, 20, 59)
print(t4)
#表示年月日时分秒

2.1.3 根据时间字符串创建时间对象

根据格式规范将字符串解析为时间元组。

strftime()方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。

格式说明
%Y以世纪为十进制数的年份
%m以十进制数字表示的月份[01,12]
%d以十进制数字表示的月份的日期[01,31]
%H小时(24小时时钟)为十进制数字[00,23]
%M分钟[00,59]
%S秒[00,61]
%z与UTC的时区偏移
%a区域设置的缩写工作日名称
%A区域设置的完整工作日名称
%b区域设置的缩写月份名称
%B区域设置的完整月份名称
%c区域设置的适当日期和时间表示
%I小时(12小时时钟)作为十进制数字[01,12]
%p区域设置相当于AM或PM
t5=datetime.strptime('2022/8/26' ,'%Y/%m/%d')
print(t5)

2.1.4 单独获取具体的时间信息

星期值的取值范围:0~6,0表示星期1

print(t5.year)
print(t5.month)
print(t5.day)
print(t5.hour)
print(t5.minute)
print(t5.second)
print(t5.weekday())

2.1.5 将时间对象转换成字符串时间

xxxx年xx月xx日

result = t4.strftime('%Y年%m月%d日')
print(result)

2.1.6 求时间差:时间对象1-时间对象2

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

t1 = datetime(2022, 5, 31, 9, 10)
t2 = datetime(2002, 7, 1, 19, 16)
result = t1 - t2
print(result, type(result))
# 7273 days, 13:54:00 <class 'datetime.timedelta'>
print(result.days)
# 7273

2.1.7 时间对象转换成结构体

这个方法的返回类型是time.struct_time包含日期和时间信息的对象。

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

2.1.8 时间对象转时间戳

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

2.2 timedelta 时间间隔类

timedelta类表示时间差,可以直接实例化得到,也可以由两个datetime类型的数据做差得到。

导入

from datetime import timedelta
参数说明
days返回时间差的天数
seconds返回时间差的秒数
minutes返回时间差的分钟数
weeks返回时间差的星期数
years返回时间差的年数

没有月!!!

# timedelta
t1 = datetime(2022, 8, 26, 10, 46, 57)
# 10天后
result = t1 - timedelta(days=10)
print(result)
# 没有月
# 32天前
print(t1 - timedelta(days=32))
# 30分钟后
print(t1 + timedelta(minutes=30))
# 5天6小时之前
print(t1 - timedelta(days=5, hours=6))
# 3周以后
result = t1 + timedelta(weeks=3)
print(result)

3 随机数

导入

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

3.1 随机小数:random()

# 产生0-20之间的随机小数
print(random()*20)
# 产生5~30之间的随机小数
# 0*25~1*25 -> 0+5 ~ 25+5
->
5 ~ 30
print(random()*(30-5)+5)
# 控制小数的小数位数round(小数,需要保留的小数位数)
print(round(3.325434,3))

3.2 randrange(起始值,终止值,步长)

随机获取指定等差数列中的一个数字。

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

3.3 sample(序列,个数)

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

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

3.4 choice(序列)

在序列中随机获取一个元素。

# choice
result=choice([10,203,903,33])
print(result)

3.5 choices(序列,权重,求和权重,数量)

有放回抽样
权重列表中的数字代表对应选项的份数。

# choices
result=choices([1,2,3,4,5],k=3)
print(result)	#取三个元素,可重复
result = choices(['1000万', '10000', '100', '0'], [1, 2, 100, 200], k=2)
print(result)	#1000万放了1个,10000放了2个,100放了100个,0放了200个,取两个元素

3.6 洗牌:shuffle(列表)

shuffle()方法将列表的所有元素打乱,随机排列。

shuffle()没有返回值

nums = [1, 2, 3, 4]
res = shuffle(nums)
print(nums)

最后

以上就是腼腆摩托为你收集整理的Python之时间模块和随机模块1 time模块2 datetime模块3 随机数的全部内容,希望文章能够帮你解决Python之时间模块和随机模块1 time模块2 datetime模块3 随机数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部