基础语言-最后一天-时间模块和随机模块

时间模块和随机模块

1.time模块

1.1导入时间模块

import time

1.2睡眠

sleep(时间)
时间的单位:秒

1.3获取当前时间

time()

❀时间戳

  • 定义

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

    a.节约内存; 时间戳:5个字节的内存空间;时间:15个字节的内存空间。
    b.方便加密
    
  • 例子

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

1.4获取本地当前时间

a.localtime():获取当前时间(结构体时间)
b.localtime(时间戳):将指定时间戳转换成本地时间对应结构体时间。

使用例子:

# a
t2 = time.localtime()
print(t2)    
# time.struct_time(tm_year=2022, tm_mon=8, tm_mday=27, tm_hour=9, tm_min=9, tm_sec=38, tm_wday=5, tm_yday=239, tm_isdst=0)

# b
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)

1.5将结构体时间转换成时间戳

time.mktime()
t3 = time.localtime(0)
print(time.mktime(t3))   # 0.0

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

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

strftime(时间格式,结构体时间)
# 具体用法
t2 = time.localtime()
# 'xxxx年xx月xx日'
print(time.strftime('%Y年%m月%d日', t2))    # 2022年08月27日
# 星期 xx:xx
print(time.strftime('%a %H:%M', t2))    # Sat 09:09
# 上午 xx:xx、下午 xx:xx
print(time.strftime('%p %H:%M',t2))    # AM 09:09

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

strptime(字符串时间,时间格式)
# 具体用法
print(time.strptime('2021/3/4', '%Y/%m/%d'))
# time.struct_time(tm_year=2021, tm_mon=3, tm_mday=4, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=63, tm_isdst=-1)

print(time.strptime('2022/8/26 9:54', '%Y/%m/%d %H:%M'))
# time.struct_time(tm_year=2022, tm_mon=8, tm_mday=26, tm_hour=9, tm_min=54, tm_sec=0, tm_wday=4, tm_yday=238, tm_isdst=-1)

2.datetime模块-时间模块

1.1导入datetime模块

# 类
datetime,date,time,timedelta
# 导入模块
from datetime import datetime,timedelta

1.2datetime

  • 获取当前时间

    datetime.today()
    datetime.now()
    

    示例:

    t1 = datetime.today()
    print(t1, type(t1))    # 2022-08-27 09:32:55.314544 <class 'datetime.datetime'>
    
    t2 = datetime.now()
    print(t2, type(t2))    # 2022-08-27 09:32:55.314544 <class 'datetime.datetime'>
    
  • 根据时间值创建时间对象

    datetime(年, 月, 日, 时, 分, 秒)
    

    示例:

    t3 = datetime(2022, 8, 26)
    print(t3)   # 2022-08-26 00:00:00
    
    t4 = datetime(2022, 8, 26, 10, 20, 30)
    print(t4)   # 2022-08-26 10:20:30
    
  • 根据时间字符串创建时间对象

    datetime.strptime(时间字符串, 格式)
    

    示例:

    t5 = datetime.strptime('2022/7/2', '%Y/%m/%d')
    print(t5)   # 2022-07-02 00:00:00
    
  • 单独获取具体的时间信息

    时间对象.信息
    星期从0-6表示星期1-天
    
    t5 = datetime.strptime('2022/7/2', '%Y/%m/%d')
    print(t5)   # 2022-07-02 00:00:00
    
    # 4)单独获取具体的时间信息:时间对象.信息
    print(t5.year)   # 2022
    print(t5.month)   # 7
    print(t5.day)     # 2
    print(t5.weekday())   # 5表示星期六
    
  • 将时间对象转换成字符串时间

    时间对象.strftime(时间格式)
    

    示例:

    print(t5.strftime('%Y年%m月%d日'))    # 2022年07月02日
    
  • 求时间差值

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

    示例:

    t1 = datetime(2000, 1, 8, 9, 30)
    t2 = datetime(2004, 6, 24, 8, 39)
    result = t2 - t1
    print(result)    # 1628 days, 23:09:00
    print(result.days)   # 1628
    print(result.seconds)  # 83340
    
  • 时间对象转换成结构体

    时间对象.timetuple()
    

    示例:

    result = t1.timetuple()
    print(result)
    # time.struct_time(tm_year=2000, tm_mon=1, tm_mday=8, tm_hour=9, tm_min=30, tm_sec=0, tm_wday=5, tm_yday=8, tm_isdst=-1)
    
  • 时间对象转时间戳

    时间对象.timestamp()
    

    示例:

    from time import localtime
    result = t1.timestamp()
    print(result)  # 947295000.0
    print(localtime(result))
    # # time.struct_time(tm_year=2000, tm_mon=1, tm_mday=8, tm_hour=9, tm_min=30, tm_sec=0, tm_wday=5, tm_yday=8, tm_isdst=0)
    

1.3timedelta类:时间间隔类

a.N天前:... - timedelta(days=N)
b.N天后:... + timedelta(days=N)
c.组合使用(xx天xx小时之后):... + timedelta(days=xxx, hours=xxx)
d.其他类似
年:years=
小时:hours=
分钟:minutes=
秒:seconds=
周:weeks=

具体用法

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

# 30天前对应的时间
result = t1 - timedelta(days=30)
print(result)    # 2022-09-01 10:08:30

# 30分钟以后
result = t1 + timedelta(minutes=30)
print(result)    # 2022-10-01 10:38:30

# 4周以后
result = t1 + timedelta(weeks=4)
print(result)    # 2022-10-29 10:08:30

# 组合使用3天7小时之后
result = t1 + timedelta(days=3, hours=7)
print(result)    # 2022-10-04 17:08:30

3.randon模块-随机模块

控制小数的小数位数:round(小数,需要保留的小数位数)

1.1导入随机模块

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

1.2randint

随机整数

a = randint(1,100)   # 1-100的随机整数

1.3`random: 随机小数

random(): 产生0到1的随机小数
random()*N: 产生0到N之间的随机小数
random()*(N-M) + M: 产生M - N之间的随机小数

示例:

# 1)random(): 产生0到1的随机小数
print(random())

# 2)random()*N: 产生0到N之间的随机小数
# 产生0-20之间的随机小数
print(random()*20)

# 3)random()*(N-M) + M: 产生M - N之间的随机小数
# 产生5-30之间的随机小数
print(random()*25 + 5)

1.4randrange

randrange(start, end, step):随机获取指定等差数列中的一个数字

示例:

print(randrange(1,10,2))   # 获取1,3,5,7,9之中随机一个数

1.5sample

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

示例:

result = sample([10, 34, 99, 100], 2)
print(result)

1.6choice

choice(序列):随机获取一个元素

示例:

result = choice([10, 34, 99, 100])
print(result)

1.7choices

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

示例:

# 权重列表中的数字代表相应选项的份数
result = choices([10, 34, 99, 100],[100, 1, 1,1], k=3)
print(result)   # [100, 10, 100]有重复的说明放回。

1.8shuffle

shuffle(列表): 洗牌

示例:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值