目录大纲 第一章:安装与运行 1.1 安装 Python 解释器 1.2 第一个 Python 程序 1.3 Python 开发环境的搭建 1.4 运行 Python 脚本的两种方法 1.5 输入与输出 第二章:数据类型 2.1 常量与变量 2.2 字符串类型 2.3 整型与浮点数 2.4 布尔值:真与假 2.5 运算符 第三章:数据结构 3.1 列表 3.2 集合 3.3 字典 3.4 元组 3.5 迭代器 3.6 生成器 第四章:控制流程 4.1 条件语句:if 判断语句 4.2 循环语句:while 和 for 循环 4.3 列表/字典推导式 第五章:学习函数 5.1 普通函数 5.2 匿名函数 5.3 高阶函数 5.4 反射函数 5.5 with 与上下文管理器 5.6 精通装饰器的八种用法 5.7 函数式编程 5.8 泛型函数 第六章:错误异常 6.1 什么是异常? 6.2 如何捕获异常 6.3 如何自定义异常 第七章:类与对象 7.1 类的定义与使用 7.2 经典类与新式类 7.3 多继承和 Mixin 设计模式 7.4 理解元类编程 7.5 深入理解描述符 7.6 静态方法其实暗藏玄机 第八章:包与模块 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 方案一:virtualenv 10.3 方案二:pipenv 第十一章:工程项目 11.1 自觉遵守 PEP8 代码风格 11.2 使用 flake8 保证代码风格 11.3 使用 mypy 进行静态类型检查 11.4 用 pytest 和 pytest-cov 进行测试 11.5 pre-commit 的 Git hooks 11.6 使用 cookiecutter 生成项目 11.7 将工具集成到 IDE 中 第十二章:并发编程 12.1 从性能角度初探并发编程 12.2 创建多线程的几种方法 12.3 谈谈线程中的“锁机制” 12.4 线程消息通信机制 12.5 线程中的信息隔离 12.6 线程池创建的几种方法 12.7 从生成器使用入门协程 12.8 深入理解yield from语法 12.9 初识异步IO框架:asyncio 上篇 12.10 深入异步IO框架:asyncio 中篇 12.11 实战异步IO框架:asyncio 下篇 12.12 生成器与协程,你分清了吗? 12.13 I/O多路复用:select/poll/epoll 12.14 浅谈线程安全那些事儿