4.2 python 基础 - 常用的python内置模块

38 阅读3分钟

一、Hashlib模块:数据加密

1.1 概述

hashlib 是Python中用于生成哈希值的加密模块,它能够帮助我们对数据进行加密处理。哈希是一种单向函数,可以将任意长度的数据转换成固定长度的字符串,通常用于密码存储和数据完整性校验。

1.2 使用方法

hashlib 提供了多种哈希算法,如MD5、SHA1、SHA256等。MD5是无法被反向破解的,所以日常生活中我们一般使用MD5进行明文加密,以下是使用MD5算法的一个示例:

import hashlib

# 原始数据
data = 'hello world'

# 创建md5 hash对象
md5_hash = hashlib.md5()

# 对数据进行编码,因为hashlib需要bytes类型的数据
md5_hash.update(data.encode('utf-8'))

# 获取16进制的哈希值
hex_digest = md5_hash.hexdigest()
print(hex_digest)

1.3 使用场景

在开发项目时,很多内容都不应该以明文形式存储,例如密码。所以使用hashlib模块,我们可以将密码加密后存储。用户登录时,将输入的密码通过相同的哈希算法加密,然后与存储的哈希值进行匹配,以验证密码的正确性。

二、Random模块:生成随机数据

2.1 概述

random 是Python中用于生成随机数的模块。它提供了多种生成随机数据的方法,如随机整数、随机小数、随机选择等。

2.2 使用方法

以下是random模块的一些常用方法:

  • randint(a, b):生成一个[a, b]范围内的随机整数。
  • uniform(a, b):生成一个[a, b]范围内的随机浮点数。
  • choice(sequence):从序列中随机选择一个元素。
  • sample(sequence, n):从序列中随机选择n个不重复的元素。
  • shuffle(x[, random]):将序列x中的元素打乱位置。

2.3 验证码生成案例

下面是一个使用random模块生成验证码的简单示例:

import random
import string

letters = string.ascii_letters  # 获取所有的大小写字母
captcha = ''.join(random.choice(letters) for _ in range(6))  # 随机选择6个字母组成验证码
print(captcha)  # 输出验证码

三、JSON模块:数据交换格式

3.1 概述

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,经常用于不同语言之间的数据传输。Python中使用json模块进行JSON数据的编码和解码。

3.2 JSON格式特点

  • 数据以键值对的形式存储,键为字符串类型。
  • 数据类型包括字符串、数字、数组(有序集合)、布尔值和null。
  • 数据格式要求严格,例如字符串必须用双引号括起来。

3.3 Python中json模块的使用方法

json模块提供了dumps()loads()两个主要方法,分别用于将Python对象编码成JSON格式的字符串,以及将JSON格式的字符串解码成Python对象。

3.3.1 使用案例

import json

# Python字典
data = {
    'name': 'John',
    'age': 30,
    'is_employee': True,
    'skills': ['Python', 'Data Analysis']
}

# 使用dumps()方法将字典编码成JSON格式的字符串
json_string = json.dumps(data)
print(json_string)

# 使用loads()方法将JSON格式的字符串解码成Python字典
decoded_data = json.loads(json_string)
print(decoded_data)