16. 内置模块

kurome / 2023-08-14 / 原文

一、random模块

  random 模块用来创建随机数的模块。

random.randint(a, b)                            # 随机生成一个大于等于a小于等于b的随机整数
random.uniform(a, b)                            # 随机生成一个大于等于a小于等于b的随机浮点数
random.choice(seq)                              # 随机选择一个seq序列中的成员
random.sample(population, k, *, counts=None)    # 随机选择多个成员
random.shuffle(x)                               # 将序列顺序随机打乱
import random

result = random.randint(10,20)                  # 随机生成一个大于等于a小于等于b的随机整数
print("result: ",result)

result = random.uniform(10,20)                  # 随机生成一个大于等于a小于等于b的随机浮点数
print("result: %f" %result)

result = random.choice([11,22,33,44,55])        # 随机选择一个seq序列中的成员
print(f"result: {result}")

result = random.sample([11,22,33,44,55],3)      # 随机选择多个成员
print(f"result: {result}")

num_list = [11,22,33,44,55]
random.shuffle(num_list)                        # 将序列顺序随机打乱
print("result: {}".format(num_list))

二、hashlib模块

  hashlib 模块可以用来实现加密。

hashlib.md5(str)               # 用于实现MD5加密
import hashlib

data = "Sakura"
obj = hashlib.md5("asdfqwerzxcv".encode("utf-8"))  # 加盐
obj.update(data.encode("utf-8"))
result = obj.hexdigest()
print(result)                                      # 密文

三、json模块

  json 本质上是一个特定结构的字符串,它用于打通不同编程语言之间相互进行通信时的数据格式问题。

  • 序列化:将 Python 数据类型转换为 JSON 格式字符串
  • 反序列化:将 JSON 格式字符串转换为 Python 数据类型
json.dumps(obj)          # 得到json格式的字符串
json.loads(obj)          # json格式的字符串转换为字典
json.dump(obj,fp)        # 将json格式的字符串写入到文件
json.load(obj,fp)        # 将文件中的json格式的字符串转换为字典
import json

info = {"name":"小樱","age":10}

data_json = json.dumps(info,ensure_ascii=False,indent=4)            # 序列化
print(data_json)
print(type(data_json))

data_dict = json.loads(data_json)                                   # 反序列化
print(data_dict)
print(type(data_dict))
import json

info = {"name":"小樱","age":10}

with open("info.json",mode="w",encoding="utf-8") as f:
    json.dump(info,f,ensure_ascii=False)

with open("info.json",mode="r",encoding="utf-8") as f:
    data_dict = json.load(f)
    print(data_dict)

四、time模块与datetime模块

time.time()             # 获取时间戳
time.sleep(secs)        # 睡眠secs秒
import time

t1 = time.time()
print(t1)

time.sleep(1)

t2 = time.time()
print(t2-t1)

【1】字符串 --> datetime 类型

from datetime import datetime

text = "1986-04-01"

date = datetime.strptime(text,"%Y-%m-%d")
print(date)
print(type(date))

【2】、datetime 类型 --> 字符串

from datetime import datetime

date = datetime.now()

str = date.strftime("%Y-%m-%d")
print(str)
print(type(str))

【3】、时间戳 --> datetime 类型

import time
from datetime import datetime

t1 = time.time()
date = datetime.fromtimestamp(t1)
print(date)
print(type(date))

【4】、datetime 类型 --> 时间戳

from datetime import datetime

date = datetime.now()
t1 = date.timestamp()
print(t1)
print(type(t1))