Python 的强大之处,不仅在于简洁的语法,更在于丰富的内置模块 —— 它们如同 “预制工具库”,能帮我们快速实现随机数生成、日期处理、数据读写、图形绘制等常见需求,无需重复造轮子。本文聚焦 9 个高频使用的 Python 模块(random、keyword、calendar、string、datetime、csv、json、pickle、turtle),通过 “模块定位 + 核心方法 + 实战案例” 的形式,让你快速掌握每个模块的核心用法。
一、random:生成随机数的 “随机工具箱”
模块定位
专门用于生成随机数、随机选择、随机打乱序列,是游戏开发、数据抽样、模拟测试等场景的必备工具。
核心方法及实战案例
import random
# 1. random():生成0~1之间的浮点数(左闭右开)
print(random.random()) # 输出示例:0.789456123
# 2. randint(a, b):生成[a, b]范围内的整数(包含两端)
print(random.randint(1, 10)) # 输出1~10之间的随机整数
# 3. choice(seq):从序列中随机选择一个元素
fruits = ["苹果", "香蕉", "橙子"]
print(random.choice(fruits)) # 随机输出一个水果
# 4. shuffle(seq):打乱序列(原地修改)
nums = [1, 2, 3, 4, 5]
random.shuffle(nums)
print(nums) # 输出示例:[3, 1, 5, 2, 4]
# 5. sample(seq, k):从序列中随机选取k个不重复元素
print(random.sample(nums, 2)) # 从nums中选2个不重复元素,示例:[5, 1]
二、keyword:校验 Python 关键字的 “小助手”
模块定位
用于查看 Python 的关键字列表、校验字符串是否为关键字,避免变量名 / 函数名与关键字冲突。
核心方法及实战案例
import keyword
# 1. kwlist:获取Python所有关键字列表
print(keyword.kwlist) # 输出:['False', 'None', 'True', 'and', 'as', …]
# 2. iskeyword(s):判断字符串是否为Python关键字
print(keyword.iskeyword("if")) # 输出:True
print(keyword.iskeyword("hello")) # 输出:False
# 实战:校验变量名是否合法(避免关键字)
def check_var_name(name):
if keyword.iskeyword(name):
return f"错误:{name}是Python关键字,不能作为变量名"
else:
return f"合法:{name}可以作为变量名"
print(check_var_name("for")) # 输出:错误:for是Python关键字,不能作为变量名
print(check_var_name("user_name")) # 输出:合法:user_name可以作为变量名
三、calendar:处理日历的 “全能工具”
模块定位
提供日历相关的操作,如生成指定年月的日历、判断闰年、获取某月天数等,适用于日期规划类场景。
核心方法及实战案例
import calendar
# 1. isleap(year):判断是否为闰年
print(calendar.isleap(2024)) # 2024是闰年,输出:True
print(calendar.isleap(2025)) # 输出:False
# 2. monthrange(year, month):返回指定年月的“星期几开始”和“天数”
# 注:星期几用0(周一)~6(周日)表示(不同系统可能有差异,默认周一为0)
week_start, day_count = calendar.monthrange(2024, 2)
print(f"2024年2月从星期{week_start+1}开始,共{day_count}天") # 输出:2024年2月从星期四开始,共29天
# 3. month(year, month):生成指定年月的日历字符串
print(calendar.month(2024, 2)) # 输出2024年2月的日历表格
# 4. prcal(year):直接打印全年日历
calendar.prcal(2024) # 控制台输出2024年完整日历
四、string:处理字符串的 “辅助库”
模块定位
提供字符串相关的常量和辅助方法,如大小写字母、数字、标点符号常量,简化字符串处理逻辑。
核心方法及实战案例
import string
# 1. 常用常量:快速获取预设字符集
print(string.ascii_letters) # 所有大小写字母:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.digits) # 所有数字:0123456789
print(string.punctuation) # 所有标点符号:!@#$%^&*()_+-=[]{}|;':",./<>?
# 2. 实战:生成随机验证码(6位,字母+数字)
import random
def generate_verify_code(length=6):
# 拼接字母和数字作为验证码字符池
char_pool = string.ascii_letters + string.digits
# 随机选length个字符并拼接
code = ''.join(random.choice(char_pool) for _ in range(length))
return code
print(generate_verify_code()) # 输出示例:8k9G7s
五、datetime:处理日期时间的 “核心模块”
模块定位
替代 Python 内置的 time 模块,提供更直观的日期、时间处理方法,支持日期计算、格式转换,是处理时间相关需求的首选。
核心方法及实战案例
from datetime import datetime, date, timedelta
# 1. 获取当前日期时间
now = datetime.now()
print(now) # 输出示例:2026-01-16 15:30:20.123456
today = date.today()
print(today) # 输出示例:2026-01-16
# 2. 日期时间格式化(strftime)
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 输出:2026-01-16 15:30:20
print(now.strftime("%Y年%m月%d日")) # 输出:2026年01月16日
# 3. 字符串转日期时间(strptime)
date_str = "2024-08-01"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
print(date_obj) # 输出:2024-08-01 00:00:00
# 4. 日期计算(timedelta)
# 获取7天后的日期
next_week = today + timedelta(days=7)
print(next_week) # 输出示例:2026-01-23
# 计算两个日期的差值
delta = next_week – today
print(delta.days) # 输出:7
六、csv:读写 CSV 文件的 “轻量工具”
模块定位
专门用于处理 CSV(逗号分隔值)文件,支持行级读写,是数据清洗、批量数据导入导出的常用工具(无需第三方库)。
核心方法及实战案例
1. 写入 CSV 文件
import csv
# 数据准备
header = ["姓名", "年龄", "城市"]
rows = [
["张三", 18, "北京"],
["李四", 20, "上海"],
["王五", 19, "广州"]
]
# 写入CSV
with open("students.csv", "w", encoding="utf-8", newline="") as f:
# 创建写入对象
writer = csv.writer(f)
# 写入表头
writer.writerow(header)
# 写入多行数据
writer.writerows(rows)
2. 读取 CSV 文件
import csv
# 读取CSV
with open("students.csv", "r", encoding="utf-8") as f:
# 创建读取对象
reader = csv.reader(f)
# 遍历每一行
for row in reader:
print(row) # 输出示例:['姓名', '年龄', '城市']、['张三', '18', '北京']…
# 更便捷:按字典格式读取(表头为键)
with open("students.csv", "r", encoding="utf-8") as f:
dict_reader = csv.DictReader(f)
for row in dict_reader:
print(f"姓名:{row['姓名']},年龄:{row['年龄']}")
七、json:处理 JSON 数据的 “标准模块”
模块定位
用于 JSON 字符串与 Python 数据类型(dict、list 等)的相互转换,是接口开发、配置文件读写的核心工具。
核心方法及实战案例
import json
# 1. Python对象转JSON字符串(dumps)
data = {
"name": "赵六",
"age": 22,
"hobbies": ["篮球", "编程"],
"is_student": True
}
# ensure_ascii=False:保留中文;indent=4:格式化输出
json_str = json.dumps(data, ensure_ascii=False, indent=4)
print(json_str)
# 输出:
# {
# "name": "赵六",
# "age": 22,
# "hobbies": ["篮球", "编程"],
# "is_student": true
# }
# 2. JSON字符串转Python对象(loads)
new_data = json.loads(json_str)
print(new_data["hobbies"][0]) # 输出:篮球
# 3. 读写JSON文件
# 写入
with open("user.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=4)
# 读取
with open("user.json", "r", encoding="utf-8") as f:
load_data = json.load(f)
print(load_data["name"]) # 输出:赵六
八、pickle:Python 对象序列化的 “专属工具”
模块定位
实现 Python 对象的序列化(将对象转为二进制)和反序列化(二进制转回对象),可保存列表、字典、类实例等复杂对象(仅 Python 可用)。
核心方法及实战案例
import pickle
# 1. 序列化:Python对象转二进制并保存到文件
data = {
"scores": [90, 85, 95],
"info": {"class": "一班", "teacher": "李老师"}
}
# 写入二进制文件(后缀通常为.pkl)
with open("data.pkl", "wb") as f:
pickle.dump(data, f)
# 2. 反序列化:从二进制文件恢复Python对象
with open("data.pkl", "rb") as f:
loaded_data = pickle.load(f)
print(loaded_data["scores"]) # 输出:[90, 85, 95]
print(loaded_data["info"]["teacher"]) # 输出:李老师
注意:pickle 仅适用于 Python 环境,且不要加载未知来源的.pkl 文件(存在安全风险)。
九、turtle:绘制图形的 “趣味工具”
模块定位
Python 内置的绘图库(基于 Tkinter),通过控制 “海龟” 的移动轨迹绘制图形,适合入门编程可视化、趣味编程教学。
核心方法及实战案例(绘制五角星)
import turtle
# 创建绘图窗口
window = turtle.Screen()
window.title("绘制五角星")
# 创建海龟对象
t = turtle.Turtle()
t.speed(2) # 设置绘制速度(1最慢,10最快)
t.color("red", "yellow") # 画笔颜色红色,填充颜色黄色
# 开始填充
t.begin_fill()
# 绘制五角星(循环5次,每次前进100,右转144度)
for _ in range(5):
t.forward(100)
t.right(144)
# 结束填充
t.end_fill()
# 隐藏海龟
t.hideturtle()
# 保持窗口(点击关闭)
turtle.done()
总结
Python 这 9 个常用模块覆盖了随机处理、日期时间、数据读写、图形绘制等核心场景,掌握它们的核心方法能大幅提升编程效率:
每个模块的核心价值在于 “复用”—— 无需从零实现复杂逻辑,只需调用内置方法即可快速完成需求。建议结合案例动手实操,能更快掌握模块的使用场景和技巧。
网硕互联帮助中心



评论前必须登录!
注册