精通Python 的下手点
前言本文档为Python精通级完整学习手册,区别于入门教程,聚焦Python底层原理、高级语法、工程开发、并发异步、性能调优、安全规范、企业级实战能力。精通核心标准:不止会写代码,而是懂原理、知坑点、会调优、能写出企业级规范、高性能、安全稳定的Python代码。一、Python核心基础(精通底层原理)章节目录变量、对象、内存地址、引用机制、可变/不可变对象(核心重中之重)数值类型:int无限精度、float浮点精度缺陷、decimal高精度运算字符编码:str/bytes区别、Unicode、UTF-8/GBK编码解码、乱码本质四大容器:list/tuple/dict/set底层原理、哈希表特性、增删改查性能核心运算符:is与==本质区别、运算符优先级特殊语法:循环else分支、海象运算符:=函数核心:五大参数类型、LEGB作用域规则、全局/闭包变量修改运算法优先级1、变量、对象、内存地址、引用机制、可变/不可变对象核心概念:Python 中一切皆对象。变量不是盒子,只是一个引用(标签),绑定到对象内存地址。id(obj)获取对象内存地址。可变对象:对象本身内存里的数据可以原地修改,id不变。list/dict/set不可变对象:对象内存数据不能原地修改;“修改”本质是新建对象,变量绑定新地址。int/str/tuple/float/bool# 变量只是对象的标签,不是容器a=[1,2,3]print(f"a 绑定对象id:{id(a)}")# b 和 a 引用同一个对象,不是复制b=aprint(f"b 绑定对象id:{id(b)}")# 原地修改可变对象,a,b同时看到变化a.append(4)print(f"a={a}, b={b}")# 不可变对象示例x=10print(f"x id={id(x)}")x=x+1# 不是修改10这个对象,新建对象11,x贴新标签print(f"x={x}, x id={id(x)}")输出a 绑定对象id: 140619002747584 b 绑定对象id: 140619002747584 a=[1, 2, 3, 4], b=[1, 2, 3, 4] x id=140619040646288 x=11, x id=1406190406463202、数值类型:int无限精度、float浮点精度缺陷、decimal高精度运算int:Python整数没有溢出限制,可以无限大。float:底层是IEEE754双精度浮点数,二进制存储小数,十进制小数无法精确表达,存在精度丢失。decimal:十进制高精度计算,适合金融、金额计算。# 1. int无限精度big_num=99999999999999999999999999999999999999999999999999print("超大整数:",big_num)# 2. float精度缺陷a=0.1+0.2print(f"0.1 + 0.2 ={a}")print(f"0.1+0.2 == 0.3 ?{a==0.3}")# 3. Decimal 高精度十进制运算fromdecimalimportDecimal,getcontext getcontext().prec=20# 设置精度d1=Decimal("0.1")d2=Decimal("0.2")res=d1+d2print(f"Decimal 0.1+0.2 ={res}")print(f"res == Decimal('0.3') ?{res==Decimal('0.3')}")输出超大整数: 99999999999999999999999999999999999999999999999999 0.1 + 0.2 = 0.30000000000000004 0.1+0.2 == 0.3 ? False Decimal 0.1+0.2 = 0.3 res == Decimal('0.3') ? True3、字符编码:str/bytes区别、Unicode、UTF-8/GBK编码解码、乱码本质str:Unicode 字符串,人类可读文本,内存中是Unicode码点。bytes:原始字节流,0-255,用于文件、网络传输。encode:str - bytes编码;decode:bytes - str解码。乱码本质:编码和解码使用的字符集不一致。# str 是Unicode文本text="中文Python"print(f"str文本:{text}, type={type(text)}")# str - bytes 编码 UTF-8b_utf8=text.encode("utf-8")print(f"utf-8 bytes:{b_utf8}, type={type(b_utf8)}")# bytes - str 解码text2=b_utf8.decode("utf-8")print(f"utf-8解码还原:{text2}")# GBK编码b_gbk=text.encode("gbk")print(f"gbk bytes:{b_gbk}")# 错误:用utf8解码gbk字节 → 乱码/报错try:wrong=b_gbk.decode("utf-8")exceptUnicodeDecodeErrorase:print("解码错误:",e)输出str文本: 中文Python, type=class 'str' utf-8 bytes: b'\xe4\xb8\xad\xe6\x96\x87Python', type=class 'bytes' utf-8解码还原: 中文Python gbk bytes: b'\xd6\xd0\xce\xc4Python' 解码错误: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte4、四大容器:list/tuple/dict/set底层原理、哈希表特性、增删改查性能list:动态数组。索引查找O(1);头部插入/删除O(n);尾部追加O(1)均摊。tuple:不可变数组,list的只读版本,可哈希(元素全部不可变时)。dict:哈希表(Python3.7+有序)。key必须可哈希,查找/插入/删除平均O(1)。set:哈希集合,只有key无value,自动去重,成员判断平均O(1)。# listlst=[10,20,30]lst.append(40)print("list:",lst)# tuple 不可变t=(1,2,3)print("tuple:",t)# t[0] = 99 # 报错,不可修改# dict 哈希表d={"name":"Tom","age":20}print("dict查找name:",d["name"])# set 自动去重s={1,1,2,2,3}print("set自动去重:",s)print(f"3 in s ?{3ins}")print(f"99 in s ?{99ins}")输出list: [10, 20, 30, 40] tuple: (1, 2, 3) dict查找name: Tom set自动去重: {1, 2, 3} 3 in s ? True 99 in s ? False列推、生表 式# ========== 列表推导式 ==========# 一次性生成 0~9 的平方,存入列表(占内存)nums_list=[x**2forxinrange(10)]print(nums_list)# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]print(type(nums_list))# class 'list'# ========== 生成器表达式 ==========# 返回一个生成器对象,不立即计算nums_gen=(x**2forxinrange(10))print(nums_gen)# generator object genexpr at 0x...print

相关新闻

亚马逊商品主图白底规格参数与像素级校验方法(2026年9月核对)

亚马逊商品主图白底规格参数与像素级校验方法(2026年9月核对)

亚马逊商品主图白底规格:背景 RGB(255,255,255)、商品主体占比 ≥85%、推荐尺寸 20002000、主图禁文字与 Logo 水印、禁边框道具与阴影背景。用 AI 电商内容生成工具可以按这套参数批量出图——鱼悦 AI(yuyue-ai.work)在生成配置中勾选白底首…

2026/10/2 21:20:25 阅读更多 →
YOLOv5肺结节检测实战:低剂量CT+CPU部署+临床RADS分级

YOLOv5肺结节检测实战:低剂量CT+CPU部署+临床RADS分级

简介:本资源是面向医学图像AI初学者与计算机视觉工程师的YOLOv5肺结节检测实战项目,聚焦CT影像中单类别(肺结节)目标检测任务,提供从数据准备、模型训练到推理部署的一站式解决方案。压缩包共704个文件,含2…

2026/10/2 21:58:58 阅读更多 →
AD9361国产替代实战:LD9361在4G基站射频链路中的兼容设计与故障排查

AD9361国产替代实战:LD9361在4G基站射频链路中的兼容设计与故障排查

去年我手头一个4G专网基站的射频方案,原设计位号写的是AD9361,结果到了量产评估阶段,那边交期一直排不上,成本也被锁得死死的。后面我开始认真折腾国产替代,最终定下来的方案就是LD9361。这块芯片在设计上是奔着兼容AD…

2026/10/3 0:41:35 阅读更多 →

最新新闻

金融与加密货币场景下的MCP Server实战:从集成到避坑

金融与加密货币场景下的MCP Server实战:从集成到避坑

MCP Server 在 AI 工具链里火了大半年了,我身边的开发者朋友基本分成两类:一类还在问“这东西和 API 插件有什么区别”,另一类已经用它把行情查询、交易监控、链上分析这些日常操作全部接到了自己的 AI 工作流里。金融与加密货币恰好是 MCP 落…

2026/10/3 4:24:20 阅读更多 →
基于SSM的咖啡销售系统:从源码到部署的完整实战指南

基于SSM的咖啡销售系统:从源码到部署的完整实战指南

毕业设计或者课程设计做到一半,我见过太多人面对“基于SSM的某某管理系统”这类题目大脑空白。今天这个基于SSM的咖啡销售系统(源码文档)就是个非常典型的项目,功能上覆盖了商品展示、购物车、下单、订单管理、后台维护这些电商系…

2026/10/3 4:24:20 阅读更多 →
树莓派5 CSI摄像头检测不到设备?从硬件链路到软件配置的完整排查指南

树莓派5 CSI摄像头检测不到设备?从硬件链路到软件配置的完整排查指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 4:24:20 阅读更多 →
Pyzbar打包DLL丢失?Pyinstaller修复方案与避坑指南

Pyzbar打包DLL丢失?Pyinstaller修复方案与避坑指南

做 Pyzbar 相关工具的朋友,大概率都体验过这样一个瞬间:本地python app.py跑得飞起,二维码咔咔一顿识别,然后你满怀信心地执行pyinstaller --onefile,把 exe 发给同事。结果对方一打开,程序直接弹个黑框就没…

2026/10/3 4:24:20 阅读更多 →
免驱USB键盘模拟开发:HID描述符与STM32固件实战解析

免驱USB键盘模拟开发:HID描述符与STM32固件实战解析

开发一个USB键盘模拟设备(或者自拍器、快捷键小键盘、按键录制器)时,最容易被吓住的就是“驱动”两个字。很多人一上来就想写Windows驱动,觉得非得搞出一个.sys文件不可。实际上,Windows从很早的系统版本开始就内置了完…

2026/10/3 4:24:20 阅读更多 →
Flask-JWT-Extended 实战:从 Token 签发到黑名单管理的完整指南

Flask-JWT-Extended 实战:从 Token 签发到黑名单管理的完整指南

做后端接口开发,绕不开认证授权这件事。早期做 Flask 项目,大家习惯用 session 加 cookie,后来前端分离、移动端兴起,token 变成了主流。而 Flask-JWT-Extended 这个库,几乎是我见过在 Flask 生态里把 JWT 做得最省心的…

2026/10/3 4:23:20 阅读更多 →

日新闻

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南 【免费下载链接】ex-skill 前任 skill 项目地址: https://gitcode.com/gh_mirrors/exsk/ex-skill 前任.skill 是一个运行在 Claude Code 上的开源 Skill:导入微信、iMessage、短信、…

2026/10/3 0:00:27 阅读更多 →
45个经典Linux面试题:从命令到网络排障的完整考点解析

45个经典Linux面试题:从命令到网络排障的完整考点解析

刚开始带应届生的时候,我最头疼的就是他们拿着一摞Linux面试题背得滚瓜烂熟,一上机全露馅。后来自己从被面的人变成面别人的人,才慢慢摸清楚:Linux面试题考的根本不是答案本身,而是你面对一个不确定的系统问题时&#…

2026/10/3 0:01:28 阅读更多 →
SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

简介:本资源是一份面向SAP ABAP开发人员、生产计划专员及ERP实施顾问的实操型操作指南,聚焦SAP生产预留核心业务场景,系统解决物料预留创建、查询、校验与批量处理等高频问题。文档以结构化方式覆盖预留背景原理、OMC2编码规则、工厂级参数配…

2026/10/3 0:01:28 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 6:09:11 阅读更多 →