python教程23-time模块的使用、calender模块、hashlib和hmac模块、uuid模块、使用pip管理第三方包

这篇Python教程涵盖了time模块的基础使用,如时间戳转换;介绍了calender模块,用于处理日历相关操作;详细讲解了hashlib和hmac模块在数据加密与校验中的应用;探讨了uuid模块生成唯一标识符的方法;最后,阐述了如何使用pip来管理Python的第三方库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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管理第三方包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值