第 29 课 · 阶段四 · 函数与模块
常用内置模块
Python 自带“瑞士军刀”——标准库。这一课实战 5 个最高频的内置模块:os、sys、math、random、datetime。
🎯 学完本课你将掌握
- 用 os 操作文件与路径
- 用 sys 与命令行参数打交道
- 用 math/random/datetime 处理数学、随机数与时间
一、os:操作系统接口
os 常用.py
1import os2print(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 sys2print(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 math2print(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 random2print(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, timedelta2now = datetime.now()3print(now) # 当前日期时间4print(now.year, now.month, now.day) # 分别取5print(now.strftime("%Y-%m-%d %H:%M:%S")) # 格式化输出67d = date(2026, 9, 1)8print(d + timedelta(days=30)) # 加30天| 格式化符 | 含义 |
|---|---|
| %Y | 四位年份 2026 |
| %m | 两位月份 09 |
| %d | 两位日期 01 |
| %H:%M:%S | 时分秒 |
六、综合小项目:随机点名 + 计时
随机点名器.py
1import random2from datetime import datetime34names = ["小明", "小红", "小刚", "小丽", "小强"]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 返回 None | shuffle 是原地修改列表并返回 None,直接打印会得到 None,先打印列表本身。 |
strftime 格式化错 | 格式符区分大小写:%Y 年份、%y 两位年份、%m 月份、%M 分钟,注意别混。 |
✍️ 小练习
写一个程序:生成 10 个 1-50 的随机数存入列表,打印最大值最小值与平均值;再输出当前时间与 7 天后的日期。
📌 本节小结
os 管文件路径、sys 拿命令行参数、math 做数学、random 造随机、datetime 记时间。标准库能覆盖 80% 的日常需求,用到再查官方文档即可。