python教程_小白入门2020/10/31
学习目标
P141 time模块的使用
# time 模块
# @author :zhangjiong
import time
print(time.time()) # 获取从1970-1-1 0.0.0 UTC(格林尼治时间)到现在的秒数
# 1604106155.9519808
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 按照指定的格式输出时间
# 2020-10-31 09:02:35
print(time.strftime("%y-%m-%d %H:%M:%S")) # 按照指定的格式输出时间
# 20-10-31 09:02:35
print(time.asctime()) # 星期几,几月,多少号,时间,年份,美国版本
# Sat Oct 31 09:02:35 2020
print(time.ctime()) # 星期几,几月,多少号,时间,年份,欧洲版本,两者差距不大,区别在于 传递的参数不一样
# Sat Oct 31 09:02:35 2020
print('hello')
time.sleep(3) # 时间暂停3秒
print('world')
P142 calender模块
# calendar 日历模块
# @author :zhangjiong
import calendar
calendar.setfirstweekday(calendar.SUNDAY) # 设置每周的起始时间码,周一到周日分别对应0~6
c = calendar.calendar(2020) # 打印某一年份的日历
print(c)
# 2020
#
# January February March
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 4 1 1 2 3 4 5 6 7
# 5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14
# 12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21
# 19 20 21 22 23 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28
# 26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31
#
# April May June
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 4 1 2 1 2 3 4 5 6
# 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
# 12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
# 19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
# 26 27 28 29 30 24 25 26 27 28 29 30 28 29 30
# 31
#
# July August September
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 4 1 1 2 3 4 5
# 5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
# 12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
# 19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
# 26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30
# 30 31
#
# October November December
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 1 2 3 4 5 6 7 1 2 3 4 5
# 4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12
# 11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19
# 18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26
# 25 26 27 28 29 30 31 29 30 27 28 29 30 31
# isleap用来判断某个年份是否是闰年
print(calendar.isleap(1990)) # False
count = calendar.leapdays(1996, 2010) # 获取1996到2010年一共有多少个闰年 1996 2000 2004 2008
print(count) # 4
print(calendar.month(2020, 10)) # 具体的打印某一个月份的日历
# October 2020
# Su Mo Tu We Th Fr Sa
# 1 2 3
# 4 5 6 7 8 9 10
# 11 12 13 14 15 16 17
# 18 19 20 21 22 23 24
# 25 26 27 28 29 30 31
P143 hashlib和hmac模块
# hashlib和hmac模块,通常用于加密,用的还是比较多的
# hashlib模块里主要支持两个算法:md5和sha 加密
# 加密方式:单向加密,只有加密的过程,没有解密的过程,md5/sha,对称加密,非对称加密
# @author :zhangjiong
import hashlib
import hmac
x = hashlib.md5()
x.update('abc'.encode('utf-8'))
print(x.hexdigest()) # 900150983cd24fb0d6963f7d28e17f72
# 加密后的结果 abc ==> 900150983cd24fb0d6963f7d28e17f72
# 可以通过加密后的密文 倒推 回来 值是abc,但是python里目前没有一个算法来做这个事
# md5 加密不够安全了,更推荐使用 sha加密
# sha是一个系列的加密,数字不一样,得到的加密长度也不一样
h1 = hashlib.sha1('123456789'.encode('utf-8'))
print(h1.hexdigest())
# f7c3bc1d808e04732adf679965ccc34ca7ae3441
h2 = hashlib.sha224('123456789'.encode('utf-8'))
print(h2.hexdigest())
# 9b3e61bf29f17c75572fae2e86e17809a4513d07c8a18152acf34521
h3 = hashlib.sha384('123456789'.encode('utf-8'))
print(h3.hexdigest())
# eb455d56d2c1a69de64e832011f3393d45f3fa31d6842f21af92d2fe469c499da5e3179847334a18479c8d1dedea1be3
h4 = hashlib.sha256('123456789'.encode('utf-8'))
print(h4.hexdigest())
# 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
# hmac 加密可以指定密钥
# 比如说在这个例子里,使用 h 这个密钥 对 你好 进行加密
h = hmac.new('h'.encode(), '你好'.encode())
result = h.hexdigest()
print(result)
加密及校对过程
P144 uuid模块
# uuid模块 :用来生成一个全局唯一的id模块
# @author :zhangjiong
import uuid
# uuid1与uuid4 使用方法基本一样
# uuid1每次生成的时候都是随机的,每一次都不相同
print(uuid.uuid1()) # 32个长度,每个位置有16个选择,一共有16**32种情况
# fc02aae3-1b20-11eb-ba03-80fa5b284118
# uuid4每次生成的时候都是随机的,每一次都不相同
print(uuid.uuid4()) # uuid4使用的是最多的
# uuid3和uuid5的使用方法基本一样
# uuid3每次生成的都是固定的值,也就是说一个 zhangsan就是对应一个uuid3的值
print(uuid.uuid3(uuid.NAMESPACE_DNS, 'zhangsan'))
# uuid5每次生成的都是固定的值,也就是说一个 zhangsan就是对应一个uuid5的值
print(uuid.uuid5(uuid.NAMESPACE_DNS, 'zhangsan'))
# 那么这个uuid到底有啥用呢,啥时候会用到uuid呢
# 比如说我搞了一个网站,然后很多人来注册,用户留下邮箱,我给用户邮箱发邮件,邮件里有链接让用户激活
# 假设一天里有1000个人来我的网站进行注册,那我怎么来区分这1000个人呢,就是通过uuid
# 用户激活的时候链接里 包含了uuid,且每个用户的uuid都不相同,等用户再登陆的时候
# 我就可以根据uuid来判别哪个用户是哪个用户
P 145 使用pip管理第三方包