news 2026/10/24 4:09:44

11-1、python常用内建模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
11-1、python常用内建模块

前言

Python强大的一大原因就是自带丰富的标准库模块,开箱即用,不用重复造轮子。本篇整理廖雪峰教程主线里重点讲解的常用内置模块,包含时间模块、随机、base64、hashlib、hmac、collections、urllib等,都是开发高频使用的模块。

datetime 日期时间模块

处理日期、时间、时间戳、时间格式化、时区转换。

from datetime import datetime, timedelta # 获取当前时间 now = datetime.now() print(now) # 创建指定时间 dt = datetime(2026, 10, 21, 12, 0, 0) print(dt) # datetime 转时间戳 timestamp(秒) ts = dt.timestamp() print(ts) # 时间戳转回datetime dt2 = datetime.fromtimestamp(ts) print(dt2) # 时间加减 timedelta new_dt = now + timedelta(days=1, hours=2) print(new_dt) # 格式化 strftime / 字符串转时间 strptime s = now.strftime("%Y-%m-%d %H:%M:%S") print(s) dt3 = datetime.strptime("2026-10-21", "%Y-%m-%d") print(dt3)

常用格式符:

  • %Y年、%m月、%d日
  • %H24小时、%M分钟、%S秒

collections 容器增强模块

提供比list/dict更方便的容器类型。

namedtuple 命名元组

给元组的位置起名字,可读性更强

from collections import namedtuple Point = namedtuple("Point", ["x", "y"]) p = Point(10, 20) print(p.x, p.y)

deque 双端队列

两端增删速度远快于list,适合队列、栈

from collections import deque q = deque([1,2,3]) q.append(4) q.appendleft(0) print(q.popleft())

defaultdict

key不存在时返回默认值,避免KeyError

from collections import defaultdict d = defaultdict(int) d["a"] += 1 print(d["a"])

OrderedDict

有序字典(Python3.7+普通dict本身有序,历史版本用它)

from collections import OrderedDict od = OrderedDict() od["a"] = 1 od["b"] = 2

Counter 计数器

快速统计元素出现次数

from collections import Counter c = Counter("abracadabra") print(c)

base64 编码模块

Base64是一种二进制转文本的编码方式,不是加密,适合在文本协议里传递二进制数据。

import base64 data = b"hello python" b64_str = base64.b64encode(data) print(b64_str) raw = base64.b64decode(b64_str) print(raw)

注意:base64会把+ / =等字符放到URL里产生问题,有urlsafe_b64encode版本。

hashlib 哈希摘要模块

计算MD5、SHA1、SHA256等摘要,常用于密码存摘要、文件校验。

摘要不可逆,相同输入一定得到相同摘要。

import hashlib # md5 md5 = hashlib.md5() md5.update(b"password123") print(md5.hexdigest()) # sha256 sha = hashlib.sha256() sha.update(b"hello") print(sha.hexdigest())

业务密码存储建议加盐(拼接自定义随机字符串)再算摘要,防止彩虹表破解。

hmac 带密钥哈希

Hmac = Hash + Key,带秘钥的摘要算法,比单纯hash更安全,常用于接口签名。

import hmac message = b"hello" key = b"secret" h = hmac.new(key, message, digestmod="md5") print(h.hexdigest())

random 随机模块

生成随机数、随机选择、打乱序列

import random print(random.random()) # [0,1)浮点数 print(random.randint(1,10)) # 1~10整数 print(random.choice([1,2,3,4])) # 随机选一个 lst = [1,2,3,4] random.shuffle(lst) # 原地打乱 print(lst)

urllib 网络请求模块

内置HTTP请求库,不用额外安装,简单爬取、调用接口。

from urllib import request, parse # get请求 req = request.Request("[https://www.baidu.com](https://www.baidu.com)") with request.urlopen(req) as f: data = f.read() print(data.decode("utf-8", errors="ignore")) # url参数编码 params = parse.urlencode({"name":"小明", "age":18}) print(params)

复杂网络开发一般用第三方requests,urllib适合轻量场景。

struct 处理二进制

按照指定格式打包、解包二进制字节流,处理网络协议、二进制文件。

import struct # 打包:I代表unsigned int bs = struct.pack('I', 1024) print(bs) val = struct.unpack('I', bs) print(val)

itertools 迭代器工具

生成无限迭代器、组合、排列,配合for循环,节省内存。

import itertools # 无限计数 for n in itertools.count(1,2): if n>10: break print(n) # 排列、组合 print(list(itertools.permutations([1,2,3],2))) print(list(itertools.combinations([1,2,3],2)))

小结

  1. datetime:日期时间处理、时间戳、时区、格式化;
  2. collections:增强容器:namedtuple、deque、defaultdict、Counter;
  3. hashlib/hmac:摘要、签名,用于密码校验、接口验签;
  4. base64:二进制转文本编码;
  5. random:随机数;urllib原生http;struct二进制打包;itertools迭代工具。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/24 4:09:06

2026年程序员必备:AI+工程化,薪资溢价50%的转型指南

2026年程序员职场正经历变革,纯开发岗位需求下降,而AI工程化相关岗位需求激增,平均薪资溢价达50%。AI工具替代重复性编码工作,纯开发技术壁垒降低,企业更看重AI结合业务创造价值。AI工程化人才缺口巨大,涵盖…

作者头像 李华
网站建设 2026/10/24 4:07:27

线缆车间无纸化改造:从纸质工单到数字化信息流

做线缆车间数字化改造,很多人第一反应是上MES系统。但MES只是工具,改造的起点其实是车间的信息流——从纸质工单、手写记录、口头传递,到系统自动采集、实时流转、结构化存储。无纸化不是目的,是信息流数字化之后的自然结果。 我参…

作者头像 李华
网站建设 2026/10/24 4:06:46

【官方原创】芯聚四城,STM32研讨会启幕

✨ 即刻报名 👉2026 STM32 研讨会:点击报名 ✨ 有奖互动 | 前 10 名报名参会领取开发板! 👉参与方式:前 10 位小伙伴,将报名截图 个人信息发送至后台。成功报名并参会即可获得NUCLEO-U545RE-Q开发板一块。…

作者头像 李华
网站建设 2026/10/24 4:06:32

Docker 多平台构建(buildx)实战:一条命令产出 amd64 + arm64 镜像

Apple Silicon 普及后,"在 Mac 上构建的镜像跑不了 Linux 服务器"成了新痛点。本文详解 Docker buildx 的安装、配置、多平台构建全流程,以及 CI/CD 中的最佳实践。一、为什么需要多平台构建1.1 问题的根源Docker 镜像是平台相关的。一个在 x8…

作者头像 李华
网站建设 2026/10/24 4:06:27

6A3 直热式功率三极管装机与调试指南

摘要:本文从工程实现角度,系统讲解电子管放大器的完整构建流程。以 6A3 直热式三极管单端 A 类功放为实战案例,覆盖电路拓扑选择、灯丝供电噪声抑制、元件选型、偏压计算、物理布局与星形接地、静态工作点检测、负载匹配、交流声排查、失真度测试及长期维护等十个关键环节,…

作者头像 李华