第 29 课 · 阶段四 · 函数与模块

常用内置模块

Python 自带“瑞士军刀”——标准库。这一课实战 5 个最高频的内置模块:os、sys、math、random、datetime。

第 29 课阶段四 · 函数与模块难度:进阶建议时长:40 分钟关键词:os · sys · math · random · datetime

🎯 学完本课你将掌握

  • 用 os 操作文件与路径
  • 用 sys 与命令行参数打交道
  • 用 math/random/datetime 处理数学、随机数与时间

一、os:操作系统接口

os 常用.py
1import os
2print(os.getcwd()) # 当前工作目录
3print(os.listdir(".")) # 当前目录下的文件列表
4print(os.path.exists("test.txt")) # 文件是否存在
5print(os.path.join("a", "b", "c.py")) # a/b/c.py 智能拼接路径
6# os.mkdir("新文件夹") # 创建目录
7# os.remove("test.txt") # 删除文件

二、sys:解释器相关

sys 常用.py
1import sys
2print(sys.version) # Python 版本
3print(sys.argv) # 命令行参数列表(第0个是脚本名)
4for i in range(1, 4):
5 print(sys.argv[i]) # 运行:python 脚本.py 参数1 参数2 参数3

三、math:数学函数

math 常用.py
1import math
2print(math.sqrt(16)) # 4.0 开方
3print(math.ceil(3.2)) # 4 向上取整
4print(math.floor(3.8)) # 3 向下取整
5print(math.fabs(-5)) # 5.0 绝对值
6print(math.pi) # 圆周率
7print(math.pow(2, 10)) # 1024.0

四、random:随机数

random 常用.py
1import random
2print(random.random()) # 0-1 随机小数
3print(random.randint(1, 100)) # 1-100 随机整数
4print(random.choice(["石头", "剪刀", "布"])) # 随机选一个
5nums = [1, 2, 3, 4, 5]
6random.shuffle(nums) # 原地打乱
7print(nums)
8print(random.sample(range(100), 3)) # 不重复随机抽3个

五、datetime:日期时间

datetime 常用.py
1from datetime import datetime, date, timedelta
2now = datetime.now()
3print(now) # 当前日期时间
4print(now.year, now.month, now.day) # 分别取
5print(now.strftime("%Y-%m-%d %H:%M:%S")) # 格式化输出
6
7d = date(2026, 9, 1)
8print(d + timedelta(days=30)) # 加30天
格式化符含义
%Y四位年份 2026
%m两位月份 09
%d两位日期 01
%H:%M:%S时分秒

六、综合小项目:随机点名 + 计时

随机点名器.py
1import random
2from datetime import datetime
3
4names = ["小明", "小红", "小刚", "小丽", "小强"]
5print("开始点名:")
6start = datetime.now()
7lucky = random.choice(names)
8end = datetime.now()
9print(f"被点到的同学是:{lucky}")
10print(f"本次用时:{(end - start).total_seconds():.4f} 秒")

七、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
AttributeError: module 'os' has no attribute 'xxx'方法名写错或记混,用 dir(os) 查看可用成员。
random.shuffle 返回 Noneshuffle 是原地修改列表并返回 None,直接打印会得到 None,先打印列表本身。
strftime 格式化错格式符区分大小写:%Y 年份、%y 两位年份、%m 月份、%M 分钟,注意别混。
✍️ 小练习
写一个程序:生成 10 个 1-50 的随机数存入列表,打印最大值最小值与平均值;再输出当前时间与 7 天后的日期。
📌 本节小结
os 管文件路径、sys 拿命令行参数、math 做数学、random 造随机、datetime 记时间。标准库能覆盖 80% 的日常需求,用到再查官方文档即可。