首页 > 代码库 > 常用模块

常用模块

一  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
>>> time.time()      #--------------返回当前时间的时间戳

1493136727.099066

# <2> 时间字符串

>>> time.strftime("%Y-%m-%d %X")
2017-04-26 00:32:18

# <3> 时间元组(结构化时间)

>>> time.localtime() #我们所在时区的时间
>>> time.gmtime() #标准时间
小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;时间元组(结构化时间)则是用来操作时间的

1.

技术分享

import time

# print(time.mktime(time.localtime()))
# print(time.mktime(time.gmtime()))   #time.gmtime将结构化时间转化成时间戳

# print(time.localtime(365*3600*24))
# print(time.gmtime(365*3600*24)) #将时间戳转化成结构化时间

# print(time.strftime("%Y-%m-%d %X",time.localtime()))  #结构化时间转化成字符串时间
# print(time.strptime("2017-04-26","%Y-%m-%d"))  #字符串时间转化成结构化时间

2.

技术分享

# print(time.asctime()) #固定格式显示当前时间
# print(time.asctime(time.localtime()))
# print(time.asctime(time.localtime(1233333223)))#显示设定时间戳的字符串时间
# print(time.ctime()) #固定格式显示当前时间
# print(time.ctime(1119234234))
#--------------------------其他方法
# sleep(secs)
# 线程推迟指定的时间运行,单位为秒。

二  random模块

>>> import random
>>> random.random()      # 大于0且小于1之间的小数
0.7664338663654585

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

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

>>> random.choice([1,23,[4,5]])  # #1或者23或者[4,5]

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

>>> random.uniform(1,3) #大于1小于3的小数
1.6270147180533838

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

练习:生成验证码

技术分享
import random

def v_code():

    code = ‘‘
    for i in range(5):

        num=random.randint(0,9)
        alf=chr(random.randint(65,90))
        add=random.choice([num,alf])
        code="".join([code,str(add)])

    return code

print(v_code())
生成验证码

三  hashlib

Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。

什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。

摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。

摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。

我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值:

常用模块