Python 3 教程 文档

  • Ⅰ Python基础
    • 1. Python入门
      • 1.1. Python基础
      • 1.2. Python中的数值类型
      • 1.3. Python 字符串
      • 1.4. 原始字符串和Unicode
      • 1.5. 变量
      • 1.6. 写一个应用程序
      • 1.7. 语句
      • 1.8. 获取用户输入
      • 1.9. 函数
      • 1.10. 剖析 Python 程序中的一些概念
      • 1.11. 模块
    • 2. 流程控制
      • 2.1. 控制流程
      • 2.2. 比较操作符
      • 2.3. 赋值技巧
      • 2.4. 布尔操作符
      • 2.5. 控制流的元素
      • 2.6. 控制流语句
      • 2.7. 更复杂的条件
      • 2.8. while 循环
      • 2.9. for循环和 range()函数
      • 2.10. while循环与if循环
      • 2.11. 导入模块
      • 2.12. 三剑客
      • 2.13. 用 sys.exit() 退出程序
    • 3. Python函数使用
      • 3.1. 函数
      • 3.2. 函数返回值和 return 语句
      • 3.3. Python 中的打印函数 print()
      • 3.4. 变量作用域
      • 3.5. global 语句
      • 3.6. Python中的异常处理
      • 3.7. —个小程序:猜数字
    • 4. Python中的列表
      • 4.1. 列表
      • 4.2. 使用列表
      • 4.3. 通用的序列操作
      • 4.4. 增强的赋值操作
      • 4.5. 列表方法
      • 4.6. 字符串和元组
      • 4.7. 引用
    • 5. 字典
      • 5.1. 字典和结构化数据
      • 5.2. 创建和使用字典
      • 5.3. 使用数据结构对真实世界建模
      • 5.4. 实践项目
      • 5.5. Python字典遍历的几种方法
    • 6. Python中的字符串
      • 6.1. 字符串操作
      • 6.2. 有用的字符串方法
      • 6.3. 格式化字符串
      • 6.4. Python格式字符串进阶
    • 7. 异常处理
      • 7.1. Python异常处理
      • 7.2. 捕获异常
      • 7.3. 异常中的函数
    • 8. 函数与抽象
      • 8.1. 调用函数的智慧
      • 8.2. 自定义函数
      • 8.3. 参数魔法
      • 8.4. 收集与使用参数
      • 8.5. 作用域
      • 8.6. 递归
    • 9. 面向对象
      • 9.1. 面向对象的概念
      • 9.2. 类
      • 9.3. 超类、接口与基类
      • 9.4. 类和元类的简单运用
      • 9.5. 构造函数
      • 9.6. 元素访问
      • 9.7. 属性
      • 9.8. 面向对象设计小结
    • 10. 模块
      • 10.1. 模块‌
      • 10.2. 探索模块‌与包
      • 10.3. Python中的堆和双端队列模块
      • 10.4. 其他有趣的标准模块
    • 11. 函数式编程
      • 11.1. 什么是函数式编程
      • 11.2. 迭代器
      • 11.3. 生成器‌
      • 11.4. 使用迭代器相关模块
      • 11.5. 八皇后问题‌求解
    • 12. 调试
      • 12.1. 调试
      • 12.2. 反向跟踪异常
      • 12.3. 断言
      • 12.4. 日志
    • 13. 高级特性
      • 13.1. 容易忽略的不可变类型
      • 13.2. 列表推导式,生成器与迭代器
      • 13.3. 神奇的__call__与返回函数
      • 13.4. 函数式编程
      • 13.5. 谈谈python的动态属性
      • 13.6. 使用 __slots__ 真的能省很多内存
      • 13.7. 闭包和装饰器
      • 13.8. 你真的了解类,对象,实例,方法吗
      • 13.9. 无聊的@property
      • 13.10. 拓展基本数据类型(dict)
    • 14. IPython的使用
      • 14.1. IPython:增强的Python解释器
      • 14.2. IPython帮助和文档
      • 14.3. IPython Shell中的键盘快捷键
      • 14.4. IPython魔术命令
      • 14.5. 输入输出历史
      • 14.6. IPython 和 Shell命令
      • 14.8. 错误和调试
      • 14.9. 性能测算和计时
  • Ⅱ Python进阶
    • 1. Pythonic与代码质量
      • 1.1. 理解Pythonic概念
      • 1.2. 编写Pythonic代码
      • 1.3. 理解Python与C语言的不同之处
      • 1.4. 在代码中适当添加注释
      • 1.5. 通过适当添加空行使代码布局更为优雅、合理
      • 1.6. 编写函数的4个原则
      • 1.7. 将常量集中到一个文件
    • 2. 习惯用法
      • 2.1. 利用 assert 语句来发现问题
      • 2.2. 数据交换值的时候不必使用中间变量
      • 2.3. 充分利用Lazy evaluation的特性
      • 2.4. 理解枚举替代实现的缺陷
      • 2.5. 不推荐使用 type 来进行类型检查
      • 2.6. 警惕 eval() 的安全漏洞
      • 2.7. 使用 enumerate() 获取序列迭代的索引和值
      • 2.8. 分清 == 与 is 的适用场景
      • 2.9. 构建合理的包层次来管理module
    • 3. 基础语法的改进
      • 3.1. 有节制地使用 from...import 语句
      • 3.2. 优先使用absolute import来导入模块
      • 3.3. i+=1 不等于 ++i
      • 3.4. 使用with自动关闭资源
      • 3.5. 使用 else 子句简化循环(异常处理)
      • 3.6. 遵循异常处理的几点基本原则
      • 3.7. 避免finally中可能发生的陷阱
      • 3.8. 深入理解None,正确判断对象是否为空
      • 3.9. 连接字符串应优先使用 join 而不是 +
      • 3.10. 格式化字符串时尽量使用 .format 方式而不是 %
      • 3.11. 区别对待可变对象和不可变对象
      • 3.12. [] 、 () 和 {} 一致的容器初始化形式
      • 3.13. 记住函数传参既不是传值也不是传引用
      • 3.14. 警惕默认参数潜在的问题
      • 3.15. 慎用变长参数
      • 3.16. 深入理解 str() 和 repr() 的区别
      • 3.17. 分清staticmethod和classmethod的适用场景
    • 4. 一些类库的用法
      • 4.1. 掌握字符串的基本用法
      • 4.2. 按需选择 sort() 或者 sorted()
      • 4.3. 使用 copy 模块深拷贝对象
      • 4.4. 使用Counter进行计数统计
      • 4.5. 深入掌握ConfigParser
      • 4.6. 使用Pandas处理大型CSV文件
      • 4.7. —般情况使用ElementTree解析XML
      • 4.8. 理解模块pickle优劣
      • 4.9. 序列化的另一个不错的选择——JSON
      • 4.10. 使用traceback获取钱信息
      • 4.11. 使用threading模块编写多线程程序
      • 4.12. 使用Queue使多线程编程更安全
    • 5. 设计模式
      • 5.1. 利用模块实现单例模式
      • 5.2. 用mixin模式让程序更加灵活
      • 5.3. 用发布订阅模式实现松耦合
      • 5.4. 用状态模式美化代码
    • 6. 内部机制
      • 6.1. 理解 built-in objects
      • 6.2. __init__() 不是构造方法
      • 6.3. 理解名字查找机制
      • 6.4. 为什么需要 self 参数
      • 6.5. 理解MRO与多继承
      • 6.6. 理解描述符机制
      • 6.7. 区别 __getattr__() 和 __getattribute__() 方法
      • 6.8. 使用更为安全的property
      • 6.9. 掌握metaclass
      • 6.10. 熟悉Python对象协议
      • 6.11. 熟悉Python的迭代器协议
      • 6.12. 熟悉Python的生成器
      • 6.13. 基于生成器的协程及greenlet
      • 6.14. 理解GIL的局限性
      • 6.15. 对象的管理与垃圾回收
  • Ⅲ Python常用类库
    • 1. 正则表达式
      • 1.1. 正则表达式与模式匹配
      • 1.2. 使用正则表达式对象
      • 1.3. 用正则表达式匹配更多模式
      • 1.4. 正则表达式字符详解
      • 1.5. 正则表达式方法详解
      • 1.6. 使用正则表达式切分字符串
      • 1.7. 用 sub 方法替换字符串
    • 2. 文件读写
      • 2.1. 文件与路径处理
      • 2.2. 文件读写过程
      • 2.3. Python 序列化
      • 2.4. 迭代文件内容
      • 2.5. 如何在Python中计算文件的MD5哈希
      • 2.6. 项目:生成随机的测验试卷文件
    • 3. 文件操作
      • 3.1. 使用 pathlib 模块
      • 3.2. 使用 os 模块遍历目录树
      • 3.3. 使用 shutil 模块
      • 3.4. glob 模块
      • 3.5. 用 zipfile 模块压缩文件
      • 3.6. 项目:将带有美国风格日期的文件改名为欧洲风格日期
      • 3.7. 项目:将一个文件夹备份到一个 ZIP 文件
      • 3.8. 使用 python-libarchive-c 模块
    • 4. CSV与JSON
      • 4.1. csv 模块
      • 4.2. 项目:从 CSV 文件中删除表头
      • 4.3. JSON 和 API
      • 4.4. json 模块
      • 4.5. 项目:取得当前的天气数据
    • 5. 日期与时间
      • 5.1. 保持时间、计划任务和启动程序
      • 5.2. 数字四舍五入
      • 5.3. 项目:超级秒表
      • 5.4. datetime 模块
      • 5.5. 回顾 Python 的时间函数
      • 5.6. 多线程
      • 5.7. Python3 多线程(二)
      • 5.13. 从Python启动其他程序
      • 5.14. 项目:简单的倒计时程序
    • 6. 文本文件
      • 6.1. Python中的Docutils模块介绍
      • 6.2. Python之markdown模块
      • 6.3. Python标准库difflib——比较序列
  • Ⅳ Python日常工具
    • 1. 用 Python 处理电子表格
      • 1.1. 电子表格的介绍
      • 1.2. 使用 OpenpyXL 读取 XLSX 电子表格
      • 1.3. Python写入电子表格
      • 1.4. 处理电子表格的样式
      • 1.5. 案例:根据XLSX生成HTML
      • 1.6. 案例:使用电子表格生成章节结构
      • 1.7. 案例:生成统计表
      • 1.8. 使用电子表格作为配置文件(DSL)
      • 1.9. 格式化文本转换
    • 2. DOCX 文档解析与处理
      • 2.1. DOCX 文档格式介绍
      • 2.2. 使用python-docx 读取文档
      • 2.3. 使用python-docx 创建文档
      • 2.4. 实例:在文档内替换文字
      • 2.5. 实例:读取电子表格数据写入 DOCX 文档
      • 2.6. 实例:为章节添加编号
      • 2.7. 处理文档的样式
      • 2.8. 实例:合并 DOCX 文件
      • 2.9. 使用python-docx-template修改word文档
      • 2.10. 实例:Windows 下将 DOCX 文档转换为PDF格式
    • 3. 用Python进行图像处理
      • 3.1. 数字图像处理的基本概念
      • 3.2. 使用 Pillow 打开图像文件
      • 3.3. 使用 Pillow 处理图像:几何变换
      • 3.4. 使用 Pillow 处理图像:通道
      • 3.5. 使用 Pillow 处理图像:图像增强
      • 3.6. 使用 Pillow 处理图像:其他话题
      • 3.7. 图像元数据以及Exif信息
      • 3.8. 实例:查询EXIF信息,获取地理位置
      • 3.9. 实例:使用Python+Pillow统一图片格式
      • 3.10. 使用OpenCV对图像进行处理
      • 3.11. 图片文字识别(OCR)
      • 3.12. 实例:对 DOCX 中的图片进行批量处理
      • 3.13. 实例: 使用Pillow生成验证码
    • 4. 使用Python处理PDF文档
      • 4.1. PDF文档
      • 4.2. 读取PDF
      • 4.3. pypdf的页面处理
      • 4.5. 添加页码和水印
      • 4.6. 使用 pdfminer3k 模块提取PDF文件内容
      • 4.7. 使用reportlab模块
    • 5. Web信息解析与处理
      • 5.1. web 的概念
      • 5.2. HTML介绍
      • 5.3. CSS
      • 5.4. 网页信息获取与解析
      • 5.5. Web页面解析
      • 5.6. 简单的爬虫
      • 5.7. selemium模块使用
    • 6. Web信息生成与发布
      • 6.1. 网站内容发布
      • 6.2. Python模板引擎
      • 6.3. Jinja2模板引擎的用法
      • 6.4. 实例:用HTML作为排版工具
      • 6.5. Python之markdown模块
      • 6.6. 使用Sphinx发布网页
      • 6.7. 使用Pelican发布网页
    • 7. 自动化Email处理
      • 7.1. E-mail 与电子邮件协议
      • 7.2. 接收邮件
      • 7.3. 发送邮件
      • 7.4. 邮件推送给多用户
      • 7.5. 发送HTML格式邮件
      • 7.6. 附件的使用
      • 7.7. 实例:将附件中内容添加到邮件正文
      • 7.8. 实例:定时发送Email
    • 8. 多媒体文件处理
      • 8.1. Mp3文件处理
    • 9. 杂项
      • 9.1. 终端颜色
      • 9.2. Python3解码utf-8 escape字符串
      • 9.3. Rich:Python开发者的终端工具!
      • 9.4. Faker假数据生成器
      • 9.5. Python 临时文件(夹)模块 tempfile 学习
  • Ⅴ 专题
    • 1. OpenCV处理
      • 1.1. 操作图像
      • 1.2. 开始使用 OpenCV
    • 2. 数据库处理:使用SQLite
      • 2.1. 数据库
      • 2.2. SQLite数据库
      • 2.3. 在 Python 中访问 SQLite
      • 2.4. 使用 Peewee 模块进行数据库的CRUD
      • 2.5. 实例:报表自动化生成
      • 2.6. 实例:将数据库信息导入到电子表格
      • 2.7. 使用数据库改进 Email 发送功能
      • 2.8. 使用 Peewee 扩展 SQLite 的使用
    • 3. Python和Web
      • 3.1. 网页抓取
      • 3.2. 使用 CGI 创建动态网页
      • 3.3. 使用 Web 框架
      • 3.4. Web 服务:更高级的抓取
      • 3.5. 小结
    • 4. Web信息处理
      • 4.1. 从Web抓取信息
      • 4.2. 用 requests 模块从Web下载文件
      • 4.3. 将下载的文件保存到硬盘
      • 4.4. HTML 基础知识
      • 4.5. 用 BeautifulSoup 模块解析 HTML
      • 4.6. 用 selenium 模块控制浏览器
    • 5. Web模板引擎
      • 5.1. Jinja2模板
    • 6. XML 处理
      • 6.1. 使用 lxml 模块处理XML
    • 7. 个人运维工具
      • 7.1. 使用 subprocess 模块
  • VI 数字图像处理
    • 1. skimage数字图像处理基础
      • 1.1. scikit-image数字图像处理:环境安装与配置
      • 1.2. 图像的读取、显示与保存
      • 1.3. 图像像素的访问与裁剪
      • 1.4. 图像数据类型及颜色空间转换
      • 1.5. 图像的绘制
      • 1.6. python数字图像处理:图像的批量处理
      • 1.7. python数字图像处理:图像的形变与缩放
    • 2. skimage数字图像处理中级
      • 2.1. 对比度与亮度调整
      • 2.2. 直方图与均衡化
      • 2.3. Python数字图像处理:图像简单滤波
      • 2.4. 图像自动阈值分割
      • 2.5. python数字图像处理:基本图形的绘制
      • 2.6. Python数字图像处理:基本形态学滤波
    • 3. skimage数字图像处理高级
      • 3.1. 高级滤波
      • 3.2. 霍夫线变换
      • 3.3. python数字图像处理(16):霍夫圆和椭圆变换
      • 3.4. Python数字图像处理(17):边缘与轮廓
      • 3.5. python数字图像处理:高级形态学处理
      • 3.6. Python+skimage数字图像处理:骨架提取与分水岭算法
    • 4. OpenCV 核心操作
      • 4.1. 图像的基础操作
      • 4.2. 10 图像上的算术运算
      • 4.3. 11 程序性能检测及优化
    • 5. 部分 IV OpenCV 中的图像处理
      • 5.1. 13 颜色空间转换
      • 5.2. 14 几何变换
      • 5.3. 15 图像阈值
      • 5.4. 图像平滑
      • 5.5. 形态学转换
      • 5.6. 图像梯度
  • Ⅶ 科学计算
    • 1. NumPy数值计算
      • 1.1. NumPy-快速处理数据
      • 1.2. ufunc运算
      • 1.3. 矩阵运算
      • 1.4. 文件存取
    • 2. SciPy科学类库
      • 2.1. SciPy-数值计算库
      • 2.2. 函数最小值
      • 2.3. 非线性方程组求解
      • 2.4. B-Spline样条曲线
      • 2.5. 数值积分
      • 2.6. 解常微分方程组
      • 2.7. 滤波器设计
    • 3. SymPy符号运算
      • 3.1. SymPy-符号运算好帮手
      • 3.2. 球体体积
    • 4. Matplotlib绘图
      • 4.1. Matplotlib-绘制精美的图表
      • 4.2. 绘制多轴图
      • 4.3. 绘图配置参数
      • 4.4. Artist对象
    • 5. Seaborn 教程
      • 5.1. Seaborn介绍
      • 5.2. seaborn 绘图功能概述
      • 5.3. seaborn 接受的数据结构
      • 5.4. seaborn.objects 接口
      • 5.5. 标记对象的属性
      • 5.6. 可视化统计关系
      • 5.7. 可视化数据分布
      • 5.8. 可视化分类数据
      • 5.9. 统计估计和误差线
      • 5.10. 估计回归拟合
      • 5.11. 构建结构化的多地块网格
      • 5.12. 控制参数美化可视化结果
      • 5.13. 选择调色板
    • 6. Pandas 第一部分
      • 6.1. Pandas教程简介
      • 6.2. Pandas快速入门
      • 6.3. Pandas 序列(Series)
      • 6.4. Pandas数据帧(DataFrame)
      • 6.5. Pandas基本功能
      • 6.6. Pandas描述性统计
      • 6.7. Pandas函数应用
      • 6.8. Pandas重建索引
      • 6.9. Pandas迭代
    • 7. Pandas 第二部分
      • 7.1. Pandas排序
      • 7.2. Pandas字符串和文本数据
      • 7.3. Pandas选项和自定义
      • 7.4. Pandas索引和选择数据
      • 7.5. Pandas统计函数
      • 7.6. Pandas窗口函数
      • 7.7. Pandas聚合
      • 7.8. Pandas缺失数据
      • 7.9. Pandas分组(GroupBy)
      • 7.10. Pandas合并/连接
      • 7.11. Pandas级联
    • 8. Pandas 第三部分
      • 8.1. Pandas日期功能
      • 8.2. Pandas时间差(Timedelta)
      • 8.3. Pandas分类数据
      • 8.4. Pandas可视化
      • 8.5. Pandas IO工具
      • 8.6. Pandas稀疏数据
      • 8.7. Pandas注意事项&窍门
      • 8.8. Pandas与SQL比较
  • Ⅷ 自然语言与知识图谱
    • 1. 结巴分词
      • 1.1. jieba介绍
      • 1.2. jieba结巴分词–关键词抽取(核心词抽取)
      • 1.3. jieba词性标注
      • 1.4. jieba添加自定义词典
      • 1.5. 并行分词
    • 2. NLTK库
      • 2.1. 使用 NLTK 分析单词和句子
      • 2.2. NLTK 与停止词
      • 2.3. NLTK 英文词干提取
      • 2.4. NLTK 词性标注
      • 2.5. NLTK 朴素贝叶斯分类器
  • 附录
    • 1. 《流畅的 Python》阅读笔记
      • 1.1. Python 数据类型
      • 1.2. 序列构成的数组
      • 1.3. 字典和集合
      • 1.4. 文本和字节序列
      • 1.5. 一等函数
      • 1.6. 使用一等函数实现设计模式
      • 1.7. 函数装饰器与闭包
      • 1.8. 对象引用、可变性和垃圾回收
      • 1.9. 符合 Python 风格的对象
      • 1.10. 序列的修改、散列和切片
      • 1.11. 接口:从协议到抽象基类
      • 1.12. 继承的优缺点
      • 1.13. 正确重载运算符
      • 1.14. 可迭代的对象、迭代器和生成器
      • 1.15. 上下文管理和 else 块
      • 1.16. 协程
      • 1.17. 使用期物处理并发
      • 1.18. 使用 asyncio 包处理并发
      • 1.19. 动态属性和特性
      • 1.20. 属性描述符
      • 1.21. 类元编程
Theme by the Executable Book Project

5. 部分 IV OpenCV 中的图像处理¶

  • 5.1. 13 颜色空间转换
    • 5.1.1. 13.1 转换颜色空间
    • 5.1.2. 13.2 物体跟踪
    • 5.1.3. 13.3 怎样找到要跟踪对象的 HSV 值?
  • 5.2. 14 几何变换
    • 5.2.1. 14.1 扩展缩放
    • 5.2.2. 14.2 平移
    • 5.2.3. 14.3 旋转
    • 5.2.4. 14.4 仿射变换
    • 5.2.5. 14.5 透视变换
  • 5.3. 15 图像阈值
    • 5.3.1. 15.1 简单阈值
    • 5.3.2. 15.2 自适应阈值
    • 5.3.3. 15.3 Otsu’ ’s 二值化
    • 5.3.4. 15.4 Otsu’ ’s 二值化是如何工作的?
  • 5.4. 图像平滑
    • 5.4.1. 2D 卷积
    • 5.4.2. 16.1 平均
    • 5.4.3. 16.2 高斯模糊
    • 5.4.4. 16.3 中值模糊
    • 5.4.5. 16.4 双边滤波
  • 5.5. 形态学转换
    • 5.5.1. 腐蚀
    • 5.5.2. 开运算
    • 5.5.3. 闭运算
    • 5.5.4. 形态学梯度
    • 5.5.5. 礼帽
    • 5.5.6. 黑帽
    • 5.5.7. 形态学操作之间的关系
  • 5.6. 图像梯度
    • 5.6.1. Sobel 算子和 Scharr 算子
    • 5.6.2. Laplacian 算子

上一页

4.3. 11 程序性能检测及优化

下一页

5.1. 13 颜色空间转换

By Bu Kun
© Copyright From 2020. Build on 2024-1-15. by BU Kun @ OSGeo China Chapter.