常用标准库
本节目标
学完这一节,你会知道:
- 什么是标准库
- 如何用
datetime处理日期时间 - 如何用
random生成随机内容 - 如何用
math做数学计算 - 如何初步认识
os和re
标准库就是 Python 自带的工具箱。安装 Python 后,这些模块就可以直接导入使用。
先跑一个例子
新建文件 stdlib_demo.py,写入:
from datetime import datetime
import random
import math
now = datetime.now()
number = random.randint(1, 100)
print(f"现在时间:{now:%Y-%m-%d %H:%M:%S}")
print(f"随机数字:{number}")
print(f"16 的平方根:{math.sqrt(16)}")
运行:
python3 stdlib_demo.py
你会看到当前时间、随机数和数学计算结果。
什么是标准库?
标准库是 Python 自带的模块,不需要额外安装。
常见标准库:
datetime:日期时间random:随机数math:数学函数os:操作系统相关功能pathlib:路径操作json:JSON 数据csv:CSV 表格re:正则表达式
用到什么查什么,不需要一次背完。
datetime:日期时间
from datetime import datetime, timedelta
now = datetime.now()
print(now)
print(now.strftime("%Y-%m-%d"))
print(now.strftime("%Y年%m月%d日 %H:%M"))
strftime() 用来格式化时间。
常见格式:
| 代码 | 含义 |
|---|---|
%Y |
年 |
%m |
月 |
%d |
日 |
%H |
小时 |
%M |
分钟 |
%S |
秒 |
计算未来或过去:
tomorrow = now + timedelta(days=1)
next_week = now + timedelta(weeks=1)
print(tomorrow)
print(next_week)
random:随机数
import random
print(random.randint(1, 10))
print(random.choice(["苹果", "香蕉", "橙子"]))
从列表中抽多个:
names = ["小明", "小红", "小刚", "小美"]
print(random.sample(names, 2))
打乱列表:
cards = [1, 2, 3, 4, 5]
random.shuffle(cards)
print(cards)
math:数学函数
import math
print(math.sqrt(16))
print(math.ceil(3.1))
print(math.floor(3.9))
print(math.pi)
常见方法:
sqrt():平方根ceil():向上取整floor():向下取整math.pi:圆周率
普通四舍五入可以用内置函数:
print(round(3.14159, 2))
os:操作系统相关
import os
print(os.getcwd())
print(os.listdir("."))
print(os.environ.get("HOME"))
os 可以获取当前目录、列出文件、读取环境变量。
路径操作建议优先使用上一节学过的 pathlib。
re:正则表达式
正则表达式用来从文本中查找特定模式。
import re
text = "联系方式:138-0000-1234"
pattern = r"\d{3}-\d{4}-\d{4}"
match = re.search(pattern, text)
if match:
print(match.group())
输出:
138-0000-1234
正则表达式一开始不用深学。先知道它适合“从一大段文本中提取手机号、邮箱、编号”等场景。
逐行拆解
再看开头的例子:
from datetime import datetime
从 datetime 模块中导入 datetime 类。
number = random.randint(1, 100)
生成 1 到 100 之间的随机整数。
math.sqrt(16)
调用 math 模块里的平方根函数。
自己改一改
把 stdlib_demo.py 改成抽奖程序:
from datetime import datetime
import random
names = ["小明", "小红", "小刚", "小美"]
winner = random.choice(names)
print(f"抽奖时间:{datetime.now():%Y-%m-%d %H:%M:%S}")
print(f"中奖用户:{winner}")
然后继续改:
- 一次抽 2 个不重复用户
- 打乱用户列表再输出
- 输出距离明天还有多少小时,提示:使用
timedelta
常见错误
1. 忘记 import
print(random.randint(1, 10))
使用前要写:
import random
2. 模块名和文件名冲突
不要把文件命名为 random.py、math.py、datetime.py。
3. 以为 random 适合密码安全
普通随机可以用 random。如果要生成真正安全的密码或令牌,要用 secrets 模块。
4. 正则表达式没有加 r
正则字符串通常写成原始字符串:
pattern = r"\d+"
这样反斜杠更不容易出问题。
小练习
练习 1:当前日期
输出今天日期,格式为:
2026-04-22
练习 2:随机点名
从名字列表中随机选一个人。
练习 3:圆面积
输入半径,使用 math.pi 计算圆面积。
参考答案
练习 1:
from datetime import datetime
print(datetime.now().strftime("%Y-%m-%d"))
练习 2:
import random
names = ["小明", "小红", "小刚"]
print(random.choice(names))
练习 3:
import math
radius = float(input("请输入半径:"))
area = math.pi * radius ** 2
print(f"面积:{area:.2f}")
小结
这一节你学会了:
- 标准库是 Python 自带的模块
datetime可以处理日期时间random可以生成随机数和随机选择math提供常用数学函数os、re分别适合系统信息和文本匹配
下一节我们会学习pip 与虚拟环境。标准库之外的第三方库,需要用 pip 安装,并建议放在独立虚拟环境里。
标准库像 Python 自带的工具抽屉
datetime、random、math 这些模块不用安装,打开抽屉就能用。你不需要背完整个标准库,知道遇到时间、随机数、数学计算时该去哪儿拿工具就很好。马哥也不是靠背目录写代码的,查文档很正常。
还没有评论,来抢沙发吧!