标准库的介绍与导入
Python 标准库是 Python 官方自带的模块集合,涵盖多种功能,无需额外安装即可使用,是 Python 编程的基础工具集。
标准库的导入方法主要有以下几种,附代码示例:
- 直接导入整个模块
import random
print(random.random()) # 调用格式:模块名.方法名
- 导入模块中的特定方法
from time import sleep
sleep(2) # 调用格式:直接用方法名
- 导入模块并指定别名
import re as regex
print(regex.match(r'abc', 'abcdef')) # 调用格式:别名.方法名
本文将精简介绍 Python 标准库中随机库(random)、时间库(time)和正则表达式库(re)的核心方法,并附代码示例,同时说明各库使用时需注意的点。
随机库(random)
用于生成随机数,适用于多种随机场景。
- random.random():返回 [0,1) 的浮点数。
import random
print(random.random()) # 示例输出:0.6789012345
- random.randint(a, b):生成 [a,b] 范围内的整数。
print(random.randint(1, 10)) # 示例输出:5
- random.choice(seq):从序列中随机选一个元素。
print(random.choice(['apple', 'banana', 'orange'])) # 示例输出:banana
- random.shuffle(seq):就地打乱序列元素。
lst = [1, 2, 3, 4, 5]
random.shuffle(lst)
print(lst) # 示例输出:[3, 1, 5, 2, 4]
- random.sample(population, k):从总体中抽取 k 个不重复元素。
print(random.sample([1, 2, 3, 4, 5], 2)) # 示例输出:[3, 5]
注意点:
- random 库生成的是伪随机数,其生成依赖于初始种子,若种子相同,生成的随机数序列也相同。可通过random.seed()设置种子,如random.seed(10),设置后每次程序运行,随机数生成结果会固定。
- 使用random.shuffle(seq)时,该方法会直接修改原序列,无法作用于不可变序列(如元组、字符串),否则会报错。
- random.sample(population, k)中,k 的值不能大于 population 的长度,否则会引发 ValueError。
时间库(time)
处理时间相关操作,如获取时间、格式化等。
- time.time():返回自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数(时间戳)。
import time
print(time.time()) # 示例输出:1720507836.123456
- time.localtime([secs]):将时间戳转为本地时间的 struct_time 对象。
local_time = time.localtime()
print(local_time.tm_year, local_time.tm_mon) # 示例输出:2025 7
- time.strftime(format[, t]):将 struct_time 对象按格式转为字符串。
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 示例输出:2025-07-09 16:30:45
- time.sleep(secs):使程序暂停 secs 秒。
time.sleep(2) # 程序暂停2秒
注意点:
- time.time()返回的时间戳受系统时间影响,若系统时间被修改,其返回值也会相应变化。
- time.localtime()转换后的本地时间会考虑时区因素,不同时区转换结果不同。
- time.strftime()中,格式符必须严格按照规定使用,若使用不存在的格式符,会抛出 ValueError。例如,使用%y表示两位数年份,若误写为%Y1,则会出错。
- time.sleep(secs)的暂停时间只是近似值,受系统调度等因素影响,实际暂停时间可能略长于指定的 secs。
正则表达式库(re)
用于字符串的模式匹配、搜索、替换等。
- re.match(pattern, string, flags=0):从字符串起始位置匹配模式。
import re
print(re.match(r'abc', 'abcdef')) # 示例输出:<re.Match object; span=(0, 3), match='abc'>
print(re.match(r'abc', 'xabcdef')) # 输出:None
- re.search(pattern, string, flags=0):在整个字符串中搜索第一个匹配模式的位置。
print(re.search(r'abc', 'xabcdef')) # 示例输出:<re.Match object; span=(1, 4), match='abc'>
- re.findall(pattern, string, flags=0):找到所有匹配模式的子串,返回列表。
print(re.findall(r'\d+', 'abc123def456')) # 输出:['123', '456']
- re.sub(pattern, repl, string, count=0, flags=0):替换匹配模式的子串。
print(re.sub(r'\d+', '*', 'abc123def456')) # 输出:abc*def*
- re.compile(pattern, flags=0):编译正则表达式模式为对象,提高效率。
pattern = re.compile(r'\d+')
print(pattern.findall('abc123def456')) # 输出:['123', '456']
注意点:
- re.match()只从字符串开头匹配,若字符串开头不满足模式,则匹配失败;而re.search()会在整个字符串中查找,二者功能不同,使用时需注意区分。
- 正则表达式中的特殊字符(如.、*、+、?等)需要转义才能表示其本身含义,可在特殊字符前加\,例如要匹配.,需写成\.。
- re.findall()返回的列表中元素的顺序与匹配到的子串在原字符串中的顺序一致。
- 使用re.compile()编译正则表达式后,生成的对象可以重复使用,对于多次使用同一模式的场景,能提高执行效率。
- re.sub()中,repl 可以是一个函数,该函数会接收匹配对象作为参数,并返回替换后的字符串,这为复杂替换提供了灵活性。
第三方库
第三方库的介绍
第三方库是由全球开发者社区开发并分享的 Python 模块,它们能够满足各种特定且复杂的需求,极大地扩展了 Python 的功能。与标准库不同,第三方库并非 Python 自带,需要先安装才能使用,其丰富性和专业性让开发者能更高效地完成各类专业任务。
不同领域的第三方库
- 网络请求与爬虫领域:除了 requests 库,还有 Scrapy,它是一个强大的爬虫框架,能高效地爬取网站数据并进行处理;Beautiful Soup 则专注于解析 HTML 和 XML 文档,方便提取其中的信息。
- 数据分析与科学计算领域:除了 pandas 和 numpy,还有 SciPy,它基于 numpy,提供了更多的科学计算功能,如线性代数、傅里叶变换等;statsmodels 则用于统计建模和分析。
- 数据可视化领域:除了 matplotlib,seaborn 基于 matplotlib,提供了更美观、更简洁的 API,能轻松绘制出更具吸引力的统计图表;Plotly 则支持交互式可视化,可生成动态的图表。
- Web 开发领域:Django 是一个高级的 Web 框架,内置了许多功能,如 ORM、admin 后台等,适合快速开发复杂的 Web 应用;Flask 是一个轻量级的 Web 框架,灵活性高,适合小型应用和 API 开发。
- 机器学习领域:scikit-learn 是一个简单高效的机器学习库,包含了多种分类、回归、聚类算法;TensorFlow 和 PyTorch 则是用于深度学习的框架,支持构建和训练复杂的神经网络模型。
第三方库的安装
第三方库的安装主要依靠包管理工具,其中 pip 是最常用的。安装方法如下:
- 打开命令行工具(Windows 的 CMD 或 PowerShell,Mac 和 Linux 的终端)。
- 输入安装命令:pip install 库名,例如安装 requests 库,输入pip install requests。
- 对于需要指定版本的库,可使用pip install 库名==版本号,如pip install pandas==1.5.3。
安装报错的解决办法
- 网络问题:若安装时出现网络超时等错误,可尝试更换国内镜像源。例如使用清华大学的镜像源安装 requests:pip install -i Simple Index requests。常用的国内镜像源还有阿里云、豆瓣等。
- 权限问题:在部分系统中,可能会因权限不足导致安装失败,此时可在命令前加上sudo(Mac 和 Linux 系统),如sudo pip install requests;Windows 系统可右键命令行工具,选择 “以管理员身份运行” 后再执行安装命令。
- 依赖冲突:不同库之间可能存在依赖冲突,可尝试升级 pip 工具:pip install --upgrade pip,再重新安装;若仍有问题,可考虑创建虚拟环境,在虚拟环境中安装所需库,避免与系统环境的库产生冲突。
- 库版本与 Python 版本不兼容:某些库的新版本可能不支持当前使用的 Python 版本,可查看库的官方文档,确认支持的 Python 版本,然后安装对应的库版本,或升级 / 降级 Python 版本。
pip 工具的常用命令
- pip list:列出当前环境中已安装的所有第三方库及其版本。
- pip show 库名:显示指定库的详细信息,包括版本、安装路径、依赖等,如pip show requests。
- pip install --upgrade 库名:升级指定的库到最新版本,如pip install --upgrade pandas。
- pip uninstall 库名:卸载指定的库,如pip uninstall requests,执行后会提示确认,输入 y 即可卸载。
- pip freeze > requirements.txt:将当前环境中已安装的库及其版本信息导出到 requirements.txt 文件中,方便在其他环境中重现该环境。
- pip install -r requirements.txt:根据 requirements.txt 文件中的内容,安装所有指定的库及其对应版本。