random&time

import random
import time


#random
a1 = random.random()  # 随机返回[0, 1)之间的小数
a2 = random.uniform(1, 3)  # 随机返回[x, y]之间小数
a3 = random.randint(1, 11)  #随机给定范围[a, b]内整数
a4 = random.randrange(1, 10, 2) #随机给定范围[a, b)之前的整数,可设置步长
a5 = random.choice([1, '2', [3, 4]]) #从非空列表中随机返回一个元素
a6 = random.sample([1, '2', [3, 4]], 2) #从非空列表中随机返回指定长度列表,元素随机
print(a1, a2, a3, a4, a5, a6)

L1 = [1, '2', [3, 4]]
random.shuffle(L1) #打乱列表顺序
print(L1)

#例:
"""
生成验证码:
1、6位数字
2、6位数字+字母
"""
def int_verify():
    ver = ''
    for i in range(6):
        ver += str(random.randint(0, 9))
    return ver


test = int_verify()
print(str(test))


def verify():
    ver = ''
    for i in range(6):
        num = str(random.randint(0, 9))
        as_num = random.randint(97, 122)
        alpha = chr(as_num)# Unicode编码转换为对应的字符
        ver += random.choice([num, alpha])# 两个元素选一个返回
    return ver


test1 = verify()
print(test1)


#time
print(time.time()) #返回时间戳,伦敦时间1970年1月1日0点0分0秒(北京8点)开始到现在的秒数
print(time.sleep(1))
#时间格式化
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2022-11-17 20:27:21 %Y年(小写y显示年的后两位) %m月 %d日  %H时 %M分 %S秒
print(time.strftime('%c')) # Tue Nov  8 20:32:10 2022  %c:当前时间
#结构化时间,localtime() 本地时间
#          gmtime() 伦敦时间
# tm_wday:当前周几,0-6表示周一到周日   tm_yday:当前是一年中的第N天   tm_isdst:是否采用夏令时,默认0表示否
print(time.localtime()) #time.struct_time(tm_year=2022, tm_mon=11, tm_mday=8, tm_hour=20, tm_min=38, tm_sec=32, tm_wday=1, tm_yday=312, tm_isdst=0) 本地时间


# 时间转换, 字符串 ← 结构化时间 → 时间戳
print(time.localtime(1669118503))# 时间戳转结构化
print(time.mktime(time.localtime(1669118503)))# 结构化时间转时间戳
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1669118503)))# 2022-11-22 20:01:43 结构化时间转格式化时间
print(time.strptime('2022-11-22 20:01:43', '%Y-%m-%d %H:%M:%S'))# 格式化时间转结构化时间,('时间', '格式')



#
#计算时间间隔
def sub_time(old_time, new_time, Ftime):
    stamp_time1 = time.mktime(time.strptime(old_time, Ftime))
    print("stamp_time1", stamp_time1)
    stamp_time2 = time.mktime(time.strptime(new_time, Ftime))
    print("stamp_time2", stamp_time2)
    sub_str_time = time.gmtime(stamp_time2 - stamp_time1)# 因时区问题,要取英国时间time.gmtime()
    print(sub_str_time)
    return (sub_str_time.tm_year - 1970,
            sub_str_time.tm_mon - 1,
            sub_str_time.tm_mday - 1,
            sub_str_time.tm_hour,
            sub_str_time.tm_min,
            sub_str_time.tm_sec)


print(sub_time('2022-11-22 20:01:43', '2022-11-22 20:18:40', '%Y-%m-%d %H:%M:%S'))

 

posted @ 2023-12-07 20:13  尐少  阅读(15)  评论(0)    收藏  举报