一 time模块

时间表示形式:

在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:
(1)时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
(2)格式化的时间字符串(Format String):'1988-03-16'
(3)元组(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

# <1> 时间戳

import time
print(time.time())    #--------------返回当前时间的时间戳
#1493194473.8422034

# <2> 时间字符串

print(time.strftime("%Y-%m-%d %X"))
#2017-04-26 16:14:33

# <3> 时间元组

print(time.localtime()) #东八区时间。
print(time.gmtime()) #标准时间,格林威治时间。
#time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=16, tm_min=14, tm_sec=33, tm_wday=2, tm_yday=116, tm_isdst=0)
#time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=8, tm_min=14, tm_sec=33, tm_wday=2, tm_yday=116, tm_isdst=0)

小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

几种时间形式的转换:

(1)

        python基础之常用模块

#一 时间戳<---->结构化时间:  localtime/gmtime   mktime
print(time.localtime(3600*24))
print(time.gmtime(3600*24))
print(time.mktime(time.localtime()))

#time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=2, tm_isdst=0)
#time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=2, tm_isdst=0)
#1493194973.0

#字符串时间<---->结构化时间: strftime/strptime
print(time.strftime("%Y-%m-%d %X",time.localtime()))
print(time.strptime("2017-03-16","%Y-%m-%d"))
print(time.strftime("%Y-%m-%d",time.localtime(time.time()-24*3600)))

#2017-04-26 16:22:53
#time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)
#2017-04-25

(2)

         python基础之常用模块

print(time.asctime(time.localtime(312343423)))
#Sun Nov 25 10:03:43 1979
print(time.ctime(312343423))
#Sun Nov 25 10:03:43 1979
#--------------------------其他方法
# sleep(secs)
# 线程推迟指定的时间运行,单位为秒。

 二、random模块

import random

print(random.random()) # 大于0且小于1之间的小数
# 0.8871504125977017

print(random.randint(1,5)) # 大于等于1且小于等于5之间的整数
# 2

print(random.randrange(1,3)) # 大于等于1且小于3之间的整数
# 1

print(random.choice([1,'23',[4,5]])) # #1或者23或者[4,5] (choice 选择)
# [4, 5]

print(random.sample([1,'23',[4,5]],2)) #列表元素任意2个组合 (sample 取样)
# [[4, 5], '23']

print(random.uniform(1,3)) #大于1小于3的小数  (uniform  统一的)
# 2.407927435974846

item=[1,3,5,7,9]
random.shuffle(item) # 打乱次序  (shuffle 洗牌)
print(item)
random.shuffle(item)
print(item)

练习:生产验证码  (validate 验证)

def validate():
    s = ''
    for i in range(5):
        num=random.randint(0,9)
        Alf=chr(random.randint(65,90)) #A-Z
        alf=chr(random.randint(97,122)) #a-z
        ret=random.choice([str(num),Alf,alf])
        s="".join([s,ret]) #和下面的字符相加结果一样
        # s+=ret
    return s

print(validate())
View Code

相关文章: