Python: 标准库入门(上)

最后更新:2026-09-22

Python 最强大的特性之一就是"内置电池"——安装 Python 时已经带了一整套标准库。这一课介绍四个最常用的模块:random、time、sys、os。虽然每个只学最常用的几个函数,但已经能解决很多实际问题了。


相关内置函数:exit()

1. random——随机数

PYTHON
import random

# 随机小数 [0, 1)
print(random.random())              # 0.3745...

# 随机整数 [a, b](包含两端)
print(random.randint(1, 10))        # 1 到 10 之间的随机整数

# 随机选择
fruits = ["苹果", "香蕉", "橘子", "葡萄"]
print(random.choice(fruits))        # 随机选一个

# 随机抽样(不重复)
print(random.sample(fruits, 2))     # 随机选 2 个

# 打乱顺序
cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(cards)
print(cards)                        # 顺序被打乱了

▶ 示例:抽奖程序(难度⭐)

▶ 试一试

输出:

TEXT 📖 仅展示
# 执行成功


2. time——时间处理

PYTHON
import time

# 当前时间戳(从 1970-01-01 到现在的秒数)
print(time.time())                  # 1758588800.123

# 暂停执行(秒)
print("开始")
time.sleep(1)                       # 暂停 1 秒
print("1 秒后")

# 格式化当前时间
print(time.strftime("%Y-%m-%d %H:%M:%S"))       # 2026-06-23 16:00:00
print(time.strftime("%Y年%m月%d日 %H时%M分"))    # 2026年06月23日 16时00分

▶ 示例:计时器(难度⭐)

▶ 试一试

输出:

TEXT 📖 仅展示
\r⏰ 时间到!


3. sys——系统交互

PYTHON
import sys

# Python 版本
print(sys.version)                  # 3.13.0 ...

# 命令行参数(运行 python script.py a b c 时)
print(sys.argv)                     # ['script.py', 'a', 'b', 'c']

# 退出程序
# sys.exit(0)                       # 正常退出

# 标准输入
# line = sys.stdin.readline()       # 读取一行输入

▶ 示例:命令行计算器(难度⭐⭐)

▶ 试一试

输出:

TEXT 📖 仅展示
用法:python calculator.py 数字1 运算符 数字2
示例:python calculator.py 3 + 5
错误:除数不能为0


4. os——操作系统

PYTHON
import os

# 当前工作目录
print(os.getcwd())                  # D:\project

# 切换目录
# os.chdir("/tmp")

# 列出目录内容
for item in os.listdir("."):
    print(item)

# 创建目录
# os.mkdir("new_folder")

# 检查路径
print(os.path.exists("test.txt"))   # True
print(os.path.isfile("test.txt"))   # True
print(os.path.isdir("data"))        # True

# 路径拼接
path = os.path.join("data", "files", "test.txt")
print(path)                         # data/files/test.txt

▶ 示例:批量文件重命名(难度⭐⭐)

▶ 试一试

输出:

TEXT 📖 仅展示
批量重命名示例(只显示,不执行):
遍历所有 .txt 文件,改为 prefix_001.txt 格式


5. 常见应用场景


相关内置函数:exit()

❓ 常见问题

Q random 模块适合做密码学安全的随机数吗?
A 不适合。random 模块用的是伪随机数生成器(PRNG),可预测。需要密码学安全的随机数(如生成密码、Token)用 secrets 模块。
Q time.sleep() 会让整个程序停住,怎么实现"不阻塞的延迟"?
A 是的,sleep() 会阻塞当前线程。如果需要非阻塞延迟,可以用多线程或在异步框架(如 asyncio)中实现。简单场景下 sleep() 够用了。
Q os 和 pathlib 用哪个?
A Python 3.4+ 推荐用 pathlib(更面向对象、更直观),但 os 更底层、功能更全。新项目建议用 pathlib,需要底层系统调用时用 os。

📖 小节


📝 作业

  1. 基础题(难度⭐):写一个程序,生成 10 个 1 到 100 之间的随机整数,输出它们和它们的平均值。

  2. 进阶题(难度⭐⭐):写一个"密码生成器"函数 generate_password(length=8),生成包含大小写字母和数字的随机密码。提示:用 string.ascii_letters + string.digits 作为字符池,用 random.choice() 逐个选取。

  3. 挑战题(难度⭐⭐⭐):写一个"文件夹统计工具"。给定一个目录路径(通过 sys.argv 传入),统计该目录下各种文件类型(扩展名)的数量和总大小。提示:用 os.listdir() 遍历,用 os.path.splitext() 获取扩展名,用 os.path.getsize() 获取文件大小。

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏