Python3基础-time、random模块
1、time模块
时间相关的操作,时间有三种表示方式:
- 时间戳 1970年1月1日之后的秒,即:time.time()
- 格式化的字符串 2014-11-11 11:11, 即:time.strftime('%Y-%m-%d')
- 结构化时间 元组包含了:年、日、星期等... time.struct_time 即:time.localtime()
import time #time() print("获取当前时间的时间戳:",time.time()) #获取当前时间的时间戳 # mktime(t) :将一个struct_time转换成时间戳 print("mktime()==",time.mktime(time.localtime())) #接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。 #time.localtime([secs]) 将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准 print("time.localtime()==",time.localtime()) #获取当前时间的对象 t=time.localtime() #获取当地地时间 print(t.tm_year,t.tm_mon,t.tm_mday) #time.gmtime()-》将一个时间戳转换为UTC时区(0时区)的struct_time。 print("time.gmtime()==",time.gmtime()) #time.strptime()把一个格式化时间字符串转化为struct_time print("time.strptime()==",time.strptime('2019/10/28','%Y/%m/%d')) print("time.strptime()==",time.strptime('2019-10-28 17:40:44','%Y-%m-%d %X')) #time.strftime()将struct_time转换为字符串时间 print(time.strftime('%Y-%m-%d')) #默认当前时间) print(time.strftime('%Y-%m-%d %X',time.localtime())) #time.asctime()把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。 # 如果没有参数,将会将time.localtime()作为参数传入。 print("(time.asctime()==",time.asctime()) # 6 ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为 # None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。 print(time.ctime()) # Sun Sep 11 00:46:38 2016 #在这个函数中,format默认为:"%a %b %d %H:%M:%S %Y" # 线程推迟指定的时间运行,单位为秒 print(time.sleep(5)) import datetime ''' datetime.date:表示日期的类。常用的属性有year, month, day datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond datetime.datetime:表示日期时间 datetime.timedelta:表示时间间隔,即两个时间点之间的长度 timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]) strftime("%Y-%m-%d") ''' import datetime print(datetime.datetime.now()) print(datetime.datetime.now() - datetime.timedelta(days=4))
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import time import sys def view_bar(num, total): rate = float(num) / float(total) rate_num = int(rate * 100) r = '\r%d%%' % (rate_num, ) sys.stdout.write(r) sys.stdout.flush() if __name__ == '__main__': for i in range(0, 101): time.sleep(0.1) view_bar(i, 100)
2、random 模块
random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。
random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。
random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值
random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。
random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改
import random import random print(random.random()) # (0,1)----float 返回随机生成的一个实数,它在[0,1)范围内。 print(random.randint(1, 3)) # [1,3] print(random.randrange(1, 3)) # [1,3) print(random.choice([1, '23', [4, 5]])) # 返回一个列表,元组或字符串的随机项。 print(random.sample([1, '23', [4, 5]], 2)) # [[4, 5], '23'] print(random.uniform(0, 3)) # 返回(0,3)的一个浮点数 item=[1,3,5,7,9] random.shuffle(item) print(item) #python 随机生成包含字母数字的5位验证码 def Vcode(): ret="" for i in range(5): num = random.randint(0,9) #随机从0-9读取一个数字 范围[0-9] alf = chr(random.randint(65,90)) #a-z 65-90 小写字母 Alf = chr(random.randint(97,122)) #A-Z 97-122 大写字母 ret_one=str(random.choice([num,alf,Alf])) ret += ret_one return ret vcode=Vcode() print(vcode)