第一章:安装运行 1.1 安装 Python 解释器 1.2 第一个 Python 程序 1.3 Python 开发环境的搭建 1.4 运行 Python 脚本的两种方法 第二章:数据类型 2.1 常量与变量 2.2 字符串类型 2.3 整型与浮点数 2.4 布尔值:真与假 2.5 输入与输出 2.6 运算符 第三章:数据结构 3.1 列表 3.2 元组 3.3 字典 3.4 集合 3.5 迭代器 3.6 生成器 第四章:控制流程 4.1 条件语句:if 4.2 循环语句:for 4.3 循环语句:while 4.4 五种推导式 第五章:学习函数 5.1 普通函数 5.2 匿名函数 5.3 高阶函数 5.4 反射函数 5.5 偏函数 5.6 泛型函数 5.7 with 与上下文管理器 5.8 装饰器的八种写法 5.9 变量的作用域 第六章:错误异常 6.1 什么是异常? 6.2 如何捕获异常 6.3 如何自定义异常 6.4 异常处理的三个好习惯 第七章:类与对象 7.1 类的理解与使用 7.2 静态方法与类方法 7.3 私有变量与私有方法 7.4 类的封装(Encapsulation) 7.5 类的继承(Inheritance) 7.6 类的多态(Polymorphism) 7.7 类的 property 属性 7.8 类的 Mixin 设计模式 7.9 深入理解描述符 7.10 学习元类编程 第八章:包与模块 8.1 什么是包、模块和库? 8.2 安装第三方包的四种方法 8.3 导入单元的构成 8.4 导入包的标准写法 8.5 什么是空间命名包? 8.6 花式导包的八种方法 8.7 包导入的三个冷门知识点 8.8 pip 的详细使用指南 8.9 理解模块的缓存 8.10 理解查找器与加载器 8.11 实现远程导入模块 8.12 分发工具:distutils和setuptools 8.13 源码包与二进制包有什么区别? 8.14 eggs与wheels 有什么区别? 8.15 超详细讲解 setup.py 的编写 8.16 打包辅助神器 PBR 是什么? 8.17 开源自己的包到 PYPI 上 第九章:调试技巧 9.1 超详细图文教你调试代码 9.2 PyCharm 中指定参数调试程序 9.3 PyCharm跑完后立即进入调试模式 9.4 脚本报错后立即进入调试模式 9.5 使用 PDB 进行无界面调试 9.6 如何调试已经运行的程序? 9.7 使用 PySnopper 调试疑难杂症 9.8 使用 PyCharm 进行远程调试 第十章:并发编程 10.1 从性能角度初探并发编程 10.2 创建多线程的几种方法 10.3 谈谈线程中的“锁机制” 10.4 线程消息通信机制 10.5 线程中的信息隔离 10.6 线程池创建的几种方法 10.7 从 yield 开始入门协程 10.8 深入理解yield from语法 10.9 初识异步IO框架:asyncio 上篇 10.10 深入异步IO框架:asyncio 中篇 10.11 实战异步IO框架:asyncio 下篇 10.12 生成器与协程,你分清了吗? 10.14 浅谈线程安全那些事儿 第十一章:代码美化 11.1 如何更好进行变量的命名? 11.2 写好函数的 6 个建议 11.3 自觉遵守 PEP8 代码风格 11.4 Pythonic 代码的 15 个案例 11.5 写出漂亮 Python 代码的 20条准则 第十二章:虚拟环境 12.1 为什么要有虚拟环境? 12.2 方案一:virtualenv 12.3 方案二:pipenv 12.4 方案三:使用 pipx 12.5 方案四:使用 poetry 第十三章:工程项目 13.1 使用 flake8 保证代码风格 13.2 使用 mypy 进行静态类型检查 13.3 用 pytest 进行代码测试 13.4 使用 pre-commit hook 解决编码规范 13.5 使用 cookiecutter 生成项目