目录

前言

一、keyword 关键字模块:判断保留字

核心作用

两大核心 API

代码示例

业务使用场景

二、random 随机模块:随机数、随机选择、洗牌

模块思维导图功能分类

1. 基础数值随机

2. 序列随机选择

完整代码示例

典型业务场景

三、string 字符常量模块:预定义各类字符集

内置常量思维导图一览

实战:随机密码生成(random + string 组合)

场景优势

四、time 基础时间模块:时间戳、本地时间、休眠

核心三大概念

核心方法速查

常用格式化占位符

代码示例

适用场景

短板

五、datetime 高级日期时间模块(企业开发首选)

1. date 纯日期类(仅年 / 月 / 日)

2. time 纯时间类(仅时 / 分 / 秒)

3. datetime 完整日期时间(最常用)

4. timedelta 时间增量(日期加减核心)

业务优势

六、五大模块使用场景区分总结

七、新手高频避坑点

八、综合实战:随机验证码生成器(整合 random + string + datetime)

结语


前言

Python 开发中,标准库模块是提升开发效率的核心工具。本文结合完整思维导图,一次性拆解 5 个日常编码最高频内置模块:

  1. keyword 关键字判断模块
  2. random 随机数生成模块
  3. string 字符常量工具模块
  4. time 基础时间戳模块
  5. datetime 高级日期时间模块(含 timedelta 时间增量) 覆盖语法、参数、代码示例、业务场景与易错点,适合新手系统梳理,也可作为开发速查手册。

一、keyword 关键字模块:判断保留字

核心作用

识别 Python 内置关键字(if/for/class/def 等),用于变量名校验、代码解析工具开发。

两大核心 API

  1. kwlist:返回全部关键字列表
  2. 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 基础时间模块:时间戳、本地时间、休眠

核心三大概念

  1. 时间戳time.time() 从 1970-01-01 至今的秒数浮点数;毫秒 = int(time.time() * 1000)
  2. 时间结构体struct_time:存储年 / 月 / 日 / 时 / 分 / 秒等完整时间信息
  3. 格式化字符串strftime 结构体转文本,strptime 文本转结构体

核心方法速查

  1. time.time():获取当前时间戳(秒)
  2. time.localtime(ts):本地时区时间结构体,不传参数默认当前时间戳
  3. time.gmtime(ts):UTC 国际标准零时区结构体
  4. time.sleep(second):程序暂停等待指定秒数
  5. time.strftime("格式", 时间结构体) → 时间转字符串
  6. 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 报表日期计算、过期判断、日期加减、定时业务 企业开发首选时间模块

七、新手高频避坑点

  1. random.shuffle () 无返回值:直接修改原列表,不要写 lst = random.shuffle(lst)
  2. random.sample() k 不能大于序列长度,需要可重复选必须用choices
  3. time.strptime 格式化字符串必须和文本完全匹配,标点、格式不一致直接报错;
  4. timedelta 只能和date/datetime对象做加减,不能和 time 模块时间戳运算;
  5. 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 用于代码解析类工具开发。结合思维导图梳理的方法与参数,开发时可以快速查阅,大幅减少重复造轮子的工作量。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐