Python 四大高频标准模块全解|keyword、random、string、time、datetime 思维导图实战手册
·
目录
八、综合实战:随机验证码生成器(整合 random + string + datetime)
前言
Python 开发中,标准库模块是提升开发效率的核心工具。本文结合完整思维导图,一次性拆解 5 个日常编码最高频内置模块:

keyword关键字判断模块random随机数生成模块string字符常量工具模块time基础时间戳模块datetime高级日期时间模块(含 timedelta 时间增量) 覆盖语法、参数、代码示例、业务场景与易错点,适合新手系统梳理,也可作为开发速查手册。
一、keyword 关键字模块:判断保留字
核心作用
识别 Python 内置关键字(if/for/class/def 等),用于变量名校验、代码解析工具开发。
两大核心 API
kwlist:返回全部关键字列表iskeyword("字符串"):传入文本,返回布尔值,判断该字符串是否是 Python 关键字
代码示例
python
运行
import keyword
# 1. 打印所有Python关键字
print(keyword.kwlist)
# 2. 判断字符串是否为关键字
print(keyword.iskeyword("def")) # True
print(keyword.iskeyword("user")) # False
# 业务场景:校验自定义变量名是否非法
def check_var_name(name):
if keyword.iskeyword(name):
print(f"错误:{name} 是Python关键字,不能用作变量名")
else:
print(f"{name} 是合法变量名")
check_var_name("while")
check_var_name("username")
业务使用场景
- 代码编辑器、在线代码判题系统变量名校验
- 自动化脚本生成工具,避免生成关键字变量导致语法报错
二、random 随机模块:随机数、随机选择、洗牌
模块思维导图功能分类
1. 基础数值随机
表格
| 方法 | 作用 | 参数区间 |
|---|---|---|
random.random() |
生成 [0,1) 浮点数 | 无参数 |
random.uniform(a,b) |
生成 [a,b] 区间浮点数 | 起始值、结束值 |
random.randint(a,b) |
生成 [a,b] 整数(首尾都包含) | 最小整数、最大整数 |
random.randrange(start,stop,step) |
从 range 序列随机取整数 | start 包含,stop 不包含,支持步长 |
2. 序列随机选择
表格
| 方法 | 作用 | 限制 |
|---|---|---|
random.choice(seq) |
从序列随机挑选 1 个元素 | 序列不可为空 |
random.choices(seq, k=N) |
随机选 k 个,允许重复 | k 可大于序列长度 |
random.sample(seq, k=N) |
随机选 k 个,不可重复 | k 必须小于等于序列总长度 |
random.shuffle(seq) |
原地打乱列表顺序,无返回值 | 仅支持可变序列 list |
完整代码示例
python
运行
import random
# 1. 基础随机数值
print(random.random()) # 0~1小数
print(random.uniform(1, 10)) # 1~10任意小数
print(random.randint(1, 100)) # 1~100整数
print(random.randrange(0, 10, 2)) # 0,2,4,6,8随机一个
# 2. 序列操作
lst = ["苹果","香蕉","橙子","葡萄"]
print(random.choice(lst)) # 随机1个水果
print(random.choices(lst, k=3)) # 选3个,可重复
print(random.sample(lst, k=2)) # 选2个,不重复
random.shuffle(lst)
print("打乱后列表:", lst)
典型业务场景
- 验证码生成、抽奖程序、随机测试用例
- 密码随机字符生成、游戏随机掉落、数据采样
三、string 字符常量模块:预定义各类字符集
内置常量思维导图一览
python
运行
import string
string.ascii_letters # 大小写字母总和 a-z + A-Z
string.ascii_lowercase # 小写字母 a~z
string.ascii_uppercase # 大写字母 A~Z
string.digits # 数字字符串 "0123456789"
string.hexdigits # 十六进制 0-9,a-f,A-F
string.octdigits # 八进制数字 0-7
实战:随机密码生成(random + string 组合)
python
运行
import random, string
def create_pwd(length=8):
# 字母+数字组合字符池
char_pool = string.ascii_letters + string.digits
# 随机选取指定长度字符
pwd = "".join(random.choices(char_pool, k=length))
return pwd
print("随机8位密码:", create_pwd(8))
场景优势
无需手动敲写全部字母、数字,统一标准字符集,避免手写字符遗漏。
四、time 基础时间模块:时间戳、本地时间、休眠
核心三大概念
- 时间戳:
time.time()从 1970-01-01 至今的秒数浮点数;毫秒 =int(time.time() * 1000) - 时间结构体
struct_time:存储年 / 月 / 日 / 时 / 分 / 秒等完整时间信息 - 格式化字符串:
strftime结构体转文本,strptime文本转结构体
核心方法速查
time.time():获取当前时间戳(秒)time.localtime(ts):本地时区时间结构体,不传参数默认当前时间戳time.gmtime(ts):UTC 国际标准零时区结构体time.sleep(second):程序暂停等待指定秒数time.strftime("格式", 时间结构体)→ 时间转字符串time.strptime("时间文本", "格式")→ 字符串转回时间结构体
常用格式化占位符
表格
| 占位符 | 含义 |
|---|---|
%Y |
4 位完整年份 2026 |
%m |
月份 01~12 |
%d |
日期 01~31 |
%H |
24 小时制小时 00~23 |
%M |
分钟 00~59 |
%S |
秒 00~59 |
代码示例
python
运行
import time
# 1. 获取时间戳
ts = time.time()
print("秒级时间戳:", ts)
print("毫秒时间戳:", int(ts * 1000))
# 2. 本地时间结构体
now_struct = time.localtime()
print("当前本地时间:", now_struct)
# 3. 结构体转格式化字符串
time_str = time.strftime("%Y年%m月%d日 %H:%M:%S", now_struct)
print("格式化时间:", time_str)
# 4. 字符串转回时间结构体
t_struct = time.strptime("2026年07月20日 14:30:00", "%Y年%m月%d日 %H:%M:%S")
print("文本转结构体:", t_struct)
# 5. 程序休眠2秒
print("等待2秒...")
time.sleep(2)
print("等待完成")
适用场景
接口请求间隔休眠、性能计时、日志时间戳、简单时间格式化。
短板
不支持日期加减、日期差值计算,复杂日期业务推荐使用datetime模块。
五、datetime 高级日期时间模块(企业开发首选)
datetime 拆分四大核心类:date(日期)、time(时分秒)、datetime(完整日期时间)、timedelta(时间增量),完美弥补 time 模块无法计算日期差的缺陷。
1. date 纯日期类(仅年 / 月 / 日)
python
运行
from datetime import date
# 获取今日日期
today = date.today()
print("今天:", today)
print("年:", today.year, "月:", today.month, "日:", today.day)
# 手动构造指定日期
d = date(2026, 7, 20)
# 日期转字符串
d_str = d.strftime("%Y-%m-%d")
# 字符串转日期对象
d2 = date.strptime("2026-07-20", "%Y-%m-%d")
2. time 纯时间类(仅时 / 分 / 秒)
python
运行
from datetime import time
# 构造时分秒
t = time(14, 30, 15)
print(t.hour, t.minute, t.second)
# 时间与字符串互转
t_str = t.strftime("%H:%M:%S")
t2 = time.strptime("14:30:15", "%H:%M:%S")
3. datetime 完整日期时间(最常用)
python
运行
from datetime import datetime
# 获取当前完整时间
now = datetime.now()
print("当前时间:", now)
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
# 手动构造指定时间
dt = datetime(2026, 7, 20, 15, 20, 8)
# 时间对象 ↔ 字符串互转
dt_str = dt.strftime("%Y-%m-%d %H:%M:%S")
dt2 = datetime.strptime("2026-07-20 15:20:08", "%Y-%m-%d %H:%M:%S")
4. timedelta 时间增量(日期加减核心)
支持对日期 / 时间做:周 / 天 / 时 / 分 / 秒的增减运算
python
运行
from datetime import datetime, timedelta
now = datetime.now()
# 加7天
after_7day = now + timedelta(days=7)
# 减2小时
before_2h = now - timedelta(hours=2)
# 时间差值计算
diff = after_7day - now
print("间隔天数:", diff.days)
业务优势
- 可直接做日期加减、计算两个时间相差天数;
- 支持精确日期筛选(近 30 天订单、过期时间判断);
- 企业项目、报表统计、定时任务开发标准模块。
六、五大模块使用场景区分总结
表格
| 模块 | 适用场景 | 替代 / 补充说明 |
|---|---|---|
| keyword | 代码校验、变量名检测 | 仅语法校验场景使用 |
| random | 抽奖、验证码、随机采样、密码生成 | 搭配 string 字符集效果最佳 |
| string | 字符池、验证码 / 密码字符素材 | 配合 random 完成随机字符生成 |
| time | 简单休眠、时间戳计时、基础日志时间 | 复杂日期计算改用 datetime |
| datetime | 报表日期计算、过期判断、日期加减、定时业务 | 企业开发首选时间模块 |
七、新手高频避坑点
- random.shuffle () 无返回值:直接修改原列表,不要写
lst = random.shuffle(lst); random.sample()k 不能大于序列长度,需要可重复选必须用choices;time.strptime格式化字符串必须和文本完全匹配,标点、格式不一致直接报错;timedelta只能和date/datetime对象做加减,不能和 time 模块时间戳运算;keyword.iskeyword("123")数字字符串不会判定为关键字,仅识别 Python 保留标识符。
八、综合实战:随机验证码生成器(整合 random + string + datetime)
python
运行
import random, string
from datetime import datetime, timedelta
# 生成6位数字+字母验证码
def create_code():
pool = string.ascii_uppercase + string.digits
code = "".join(random.choices(pool, k=6))
# 验证码有效期10分钟
expire_time = datetime.now() + timedelta(minutes=10)
return {"code": code, "expire": expire_time.strftime("%Y-%m-%d %H:%M:%S")}
print(create_code())
输出示例: {'code': '7S29K5', 'expire': '2026-07-20 15:42:30'}
结语
这 5 个内置标准模块是 Python 入门到企业开发的必备基础工具,无需额外安装第三方库,开箱即用。random+string 负责随机类业务,time/datetime 覆盖全场景时间处理,keyword 用于代码解析类工具开发。结合思维导图梳理的方法与参数,开发时可以快速查阅,大幅减少重复造轮子的工作量。
更多推荐



所有评论(0)