python生成随机时间_python获取指定时间段内的随机不重复时间点的实现代码

这篇文章介绍python获取指定时间段内的随机不重复时间点的实现代码

场景1:取N个07:30:00-09:30:33之间的随机时间。

下面是我的代码:#2016-12-10 7:06:29 codegay

import random

st = "07:30:00"

et = "09:30:33"

def time2seconds(t):

h,m,s = t.strip().split(":")

return int(h) * 3600 + int(m) * 60 + int(s)

def seconds2time(sec):

m,s = pmod(sec,60)

h,m = pmod(m,60)

return "%02d:%02d:%02d" % (h,m,s)

sts = time2seconds(st) #sts==27000

ets = time2seconds(et) #ets==34233

rt = random.sample(range(sts,ets),10)

#rt == [28931, 29977, 33207, 33082, 31174, 30200, 27458, 27434, 33367, 30450]

rt.sort() #对时间从小到大排序

for r in rt:

print(seconds2time(r))

"""输出:

07:43:12

07:54:31

08:08:33

08:27:46

以下是一个基本的代码雨效果的Python代码,每次运行时会随机选择颜色,并保证不重复出现相同颜色: ```python import random import time # 定义字符集 chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '+', '=', '[', ']', '{', '}', '|', ';', ':', ',', '.', '<', '>', '?', '/'] # 定义颜色集 colors = ['30', '31', '32', '33', '34', '35', '36', '37'] # 开始循环 while True: # 随机选择颜色,且保证不重复 color = random.choice(colors) colors.remove(color) if not colors: colors = ['30', '31', '32', '33', '34', '35', '36', '37'] # 每行代码长度和速度随机 length = random.randint(10, 50) speed = random.uniform(0.1, 0.5) # 生成一行代码 code = ''.join(random.choice(chars) for _ in range(length)) # 输出到控制台 print('\033[{}m{}\033[0m'.format(color, code)) # 控制速度 time.sleep(speed) ``` 这个代码使用了ANSI转义序列来控制输出颜色,具体地,`\033[{}m{}\033[0m` 中的 `{}` 是一个占位符,其中第一个 `{}` 用于填入颜色代码,第二个 `{}` 用于填入输出的字符串。例如,如果要输出红色的字符串 `hello`,可以这样写:`\033[31mhello\033[0m`。 代码的主要逻辑是不断循环,每次随机选择颜色、代码长度和速度,然后生成一行随机代码,并输出到控制台,最后再等待一段时间。每次选择颜色时,都会从颜色集中删除已经选过的颜色,以保证不重复出现。如果颜色集中的颜色已经全部用完,则重新初始化颜色集。这样就保证了每次输出的颜色都不会重复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值