time模块和random模块
time模块
1.time.time()返回当前的时间戳(1970年后经过的秒数以浮点数表示)
1 import time 2 print(time.time())
结果:
1532613085.084711
今天的日期是2018/7/26,该浮点数就是从1970(UNIX诞生年)年到现在这个时刻的秒数
2.time.localtime()格式化时间戳为本地时间,如果没有参数传入的话,以本地时间为准,若有参数(秒数)传入,则会转换这个秒数为结构式的时间表示方式。
1 import time 2 print(time.localtime()) 3 print(time.localtime(1532613389))
结果:
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=26, tm_hour=21, tm_min=59, tm_sec=52, tm_wday=3, tm_yday=207, tm_isdst=0)
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=26, tm_hour=21, tm_min=56, tm_sec=29, tm_wday=3, tm_yday=207, tm_isdst=0)
3.time.strftime()函数接受以时间元组,并返回以可读字符串表示当地时间。
1 %y 两位数的年份表示(00-99) 2 %Y 四位数的年份表示(000-9999) 3 %m 月份(01-12) 4 %d 月内中的一天(0-31) 5 %H 24小时制小时数(0-23) 6 %I 12小时制小时数(01-12) 7 %M 分钟数(00=59) 8 %S 秒(00-59) 9 %a 本地简化星期名称 10 %A 本地完整星期名称 11 %b 本地简化的月份名称 12 %B 本地完整的月份名称 13 %c 本地相应的日期表示和时间表示 14 %j 年内的一天(001-366) 15 %p 本地A.M.或P.M.的等价符 16 %U 一年中的星期数(00-53)星期天为星期的开始 17 %w 星期(0-6),星期天为星期的开始 18 %W 一年中的星期数(00-53)星期一为星期的开始 19 %x 本地相应的日期表示 20 %X 本地相应的时间表示 21 %Z 当前时区的名称 22 %% %号本身
1 import time 2 print (time.localtime()) 3 print (time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) 4 print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
结果:
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=26, tm_hour=22, tm_min=3, tm_sec=41, tm_wday=3, tm_yday=207, tm_isdst=0) 2018-07-26 22:03:41 Thu Jul 26 22:03:41 2018
4.time.asctime() 函数接受时间元组并返回一个可读的形式(格式固定)为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
1 import time 2 print(time.asctime(time.localtime()))
结果:
Thu Jul 26 22:07:10 2018
5.time.ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。 如果参数未给或者为None的时候,将会默认time.time()为参数。
1 import time 2 print(time.ctime(1532614196.0322936)) 3 print(time.ctime())
结果:
Thu Jul 26 22:09:56 2018
Thu Jul 26 22:10:11 2018
6.time.sleep()延迟程序的执行
1 import time 2 start_time = time.time() 3 time.sleep(5) 4 stop_time = time.time() 5 print(stop_time - start_time)
结果:
5.000237464904785
random模块
1.random.random()返回一个介于[0.0,1.0)区间的浮点数
2.random.uniform(a, b) 返回一个介于a和b之间的浮点数。如果a>b,则是b到a之间的浮点数。这里的a和b都有可能出现在结果中。
3.random.sample(population, k) 从population样本或集合中随机抽取K个不重复的元素形成新的序列。常用于不重复的随机抽样。返回的是一个新的序列,不会破坏原有序列。要从一个整数区间随机抽取一定数量的整数,请使用sample(range(10000000), k=60)类似的方法,这非常有效和节省空间。如果k大于population的长度,则弹出ValueError异常。
4.random.randint()返回起始值到终值的中间的任何一个整数
5.random.shuffle()打乱序列中的顺序
6.random.randrange(a,b)返回[a,b)中间的任何一个整数
练习:制作一个由数字和字母组成的四位的验证码
1 import random 2 res = '' 3 for i in range(4): 4 num = random.randint(0, 9) 5 ch1 = chr(random.randint(65, 90)) 6 ch2 = chr(random.randint(97, 122)) 7 s = random.choice([num, ch1, ch2]) 8 res += str(s) 9 10 print(res)
结果:
1 sJ65 2 1X0P 3 Hq51 4 7kzy 5 XEk4
取了五次的实验结果。