图书目录

目    录

第1章  Python简介 1

1.1  Python的历史 1

1.2  为什么使用Python 2

1.3  搭建Python 3.8开发环境 2

1.3.1  安装Python 3.8 2

1.3.2  运行Python 6

1.3.3  选择Python IDE——IDLE 7

1.3.4  选择Python IDE——PyCharm 8

1.4  开始编程:第一个Python Hello World 13

1.5  Python语言特性 16

1.5.1  Python的缩进 16

1.5.2  Python的序列 18

1.5.3  对各种编程模式的支持 18

1.5.4  Python的动态性 19

1.5.5  匿名函数、嵌套函数 21

1.5.6  Python自省 21

1.6  Python 3.8的新增功能 21

1.7  本章小结 22

第2章  Python基础知识 23

2.1  Python的基础简介 23

2.1.1  启动Python解释器 23

2.1.2  数值类型 24

2.1.3  字符串 25

2.1.4  列表 27

2.1.5  流程控制 29

2.1.6  函数 31

2.2  开始编程:九九乘法表 32

2.2.1  九九乘法表 32

2.2.2  编程思路 32

2.2.3  编程实现 33

2.2.4  运行Python程序 34

2.3  本章小结 36

第3章  Python的内置类型 37

3.1  Python的类型分类 37

3.2  简单类型 38

3.2.1  布尔类型 39

3.2.2  整数类型 42

3.2.3  浮点数类型 43

3.2.4  复数类型 43

3.2.5  None类型 43

3.3  简单类型的运算 44

3.4  常量类型 45

3.5  序列类型 46

3.6  列表类型 46

3.6.1  创建list 46

3.6.2  list的元素访问 47

3.6.3  列表运算 47

3.6.4  列表的方法 50

3.6.5  列表的内置函数 53

3.6.6  列表推导式 54

3.7  元组类型 54

3.8  字符串类型 57

3.9  字典类型 60

3.9.1  字典的创建 60

3.9.2  字典的操作 61

3.10  集合类型 63

3.10.1  集合的创建 63

3.10.2  集合的方法和运算 63

3.11  开始编程:文本统计和比较 64

3.11.1  需求说明 64

3.11.2  需求分析 64

3.11.3  整体思路 64

3.11.4  具体实现 65

3.11.5  文本读写 67

3.11.6  命令行参数 67

3.11.7  程序入口 69

3.11.8  运行效果 71

3.12  本章小结 71

第4章  流程控制和函数 73

4.1  流程控制 73

4.1.1  选择结构 73

4.1.2  for循环结构 75

4.1.3  while循环结构 76

4.2  函数 79

4.2.1  函数的定义 80

4.2.2  函数的参数 80

4.2.3  函数调用和返回 83

4.2.4  lambda函数 84

4.2.5  嵌套函数 86

4.2.6  函数的作用域 86

4.3  开始编程:八皇后算法 87

4.3.1  八皇后问题 87

4.3.2  问题分析 88

4.3.3  程序设计 89

4.3.4  问题深入 91

4.3.5  问题总结 92

4.4  本章小结 94

第5章  类和对象 95

5.1  面向对象 95

5.1.1  面向对象的历史 95

5.1.2  面向对象概述 95

5.1.3  面向对象小结 97

5.2  Python类和对象 98

5.2.1  类的定义 98

5.2.2  类的实例化 99

5.2.3  类的方法 100

5.2.4  类的特殊方法 102

5.2.5  类的继承 103

5.2.6  类的关联和依赖 108

5.2.7  类的聚合和组合 109

5.2.8  类的关系 110

5.3  开始编程:自动打印字符图案 111

5.3.1  需求分析和设计 111

5.3.2  程序开发 114

5.3.3  程序入口 120

5.4  本章小结 121

第6章  异常捕获和抛出 122

6.1  异常处理 122

6.1.1  Traceback异常信息 123

6.1.2  捕获异常 124

6.1.3  多重异常处理 125

6.1.4  异常的参数 129

6.1.5  内置异常类型 130

6.1.6  抛出异常 132

6.1.7  自定义异常类型 134

6.2  开始编程:计算机猜数 135

6.2.1  计算机猜数程序 135

6.2.2  需求分析 136

6.2.3  算法分析 137

6.2.4  编程实现 139

6.2.5  异常处理 141

6.2.6  异常类定义 142

6.2.7  抛出和捕获异常 143

6.3  本章小结 144

第7章  模块和包 145

7.1  模块 145

7.1.1  Python模块 145

7.1.2  导入模块 146

7.1.3  查找模块 148

7.1.4  模块编译 149

7.2  包 149

7.2.1  Python包 149

7.2.2  包的导入 150

7.2.3  内嵌包 151

7.3  本章小结 152

第8章  元类和新型类 153

8.1  元类 153

8.1.1  类工厂 153

8.1.2  初识元类 154

8.1.3  设置类的元类属性 156

8.1.4  元类的魔力 157

8.1.5  面向方面和元类 158

8.1.6  元类的小结 159

8.2  新型类 159

8.2.1  新型类和传统类的区别 160

8.2.2  类方法和静态方法 160

8.2.3  新型类的特定方法 162

8.2.4  新型类的特定属性 164

8.2.5  类的super()方法 165

8.2.6  新型类的小结 167

8.3  本章小结 167

第9章  迭代器、生成器和修饰器 168

9.1  迭代器和生成器 168

9.1.1  迭代器的概念 168

9.1.2  生成器的概念 170

9.1.3  生成器yield语法 171

9.1.4  生成器的用途 175

9.2  修饰器 177

9.2.1  修饰器模式 177

9.2.2  Python修饰器 178

9.2.3  修饰器函数的定义 179

9.2.4  修饰器的应用 180

9.3  本章小结 182

第10章  多线程 183

10.1  线程的概念 183

10.2  创建多线程 184

10.2.1  通过threading.Thread()创建 184

10.2.2  通过继承threading.Thread类创建 185

10.3  主线程 186

10.4  阻塞线程 188

10.5  判断线程是否是活动的 189

10.6  线程同步 191

10.6.1  同步的概念 191

10.6.2  Python中的锁 191

10.6.3  Python中的条件锁 192

10.7  本章小结 196

第11章  文件与目录 197

11.1  文件的处理 197

11.1.1  获取系统类型 197

11.1.2  获取系统环境 198

11.1.3  执行系统命令 200

11.1.4  操作目录及文件 200

11.2  文件和目录的高级处理 206

11.2.1  复制文件 206

11.2.2  移动文件 208

11.2.3  读取压缩及归档压缩文件 208

11.2.4  解压文件 209

11.3  开始编程:文件处理实战 209

11.4  本章小结 212

第12章  正则表达式 213

12.1  正则表达式简介 213

12.1.1  正则表达式概念 213

12.1.2  正则表达式构成 214

12.2  re模块的简单应用 215

12.3  常用正则表达式 220

12.3.1  常用数字表达式的校验 220

12.3.2  常用字符表达式的校验 221

12.3.3  特殊需求表达式的校验 223

12.4  本章小结 225

第13章  网络编程 226

13.1  网络编程理论基础 226

13.1.1  网络协议 226

13.1.2  IP地址与端口 228

13.1.3  socket套接字 229

13.2  使用TCP的服务器与客户端 235

13.2.1  TCP工作原理 235

13.2.2  TCP服务器的实现 236

13.2.3  TCP客户端的实现 238

13.3  使用UDP的服务器与客户端 240

13.3.1  UDP工作原理 240

13.3.2  UDP服务器的实现 240

13.3.3  UDP客户端的实现 241

13.4  开始编程:网络聊天程序 242

13.5  本章小结 246

第14章  urllib爬虫 247

14.1  urllib、urllib2、urllib3的不同 247

14.2  urllib3中的request模块 250

14.2.1  对URL的访问 250

14.2.2  Request类 255

14.2.3  其他类 258

14.3  request引发的异常 259

14.4  解析URL的parse模块 260

14.4.1  URL解析 260

14.4.2  URL转义 264

14.5  分析robots.txt文件 267

14.6  本章小结 268

第15章  网页爬虫实战 269

15.1  获取页面源码 269

15.1.1  从网页获取数据 269

15.1.2  转换编码UTF-8 270

15.1.3  添加关键字进行搜索 271

15.2  过滤数据 272

15.2.1  Beautiful Soup简介 272

15.2.2  Beautiful Soup的使用 273

15.3  数据保存 274

15.3.1  保存数据到本地文本 274

15.3.2  保存数据到数据库 275

15.4  本章小结 276

第16章  Scrapy爬虫 277

16.1  安装Scrapy 277

16.1.1  在Windows下安装Scrapy 277

16.1.2  在Linux下安装Scrapy 279

16.2  Scrapy选择器XPath和CSS 280

16.2.1  XPath选择器 280

16.2.2  CSS选择器 284

16.2.3  其他选择器 286

16.3  Scrapy爬虫实战:今日影视 286

16.3.1  创建Scrapy项目 286

16.3.2  Scrapy文件介绍 288

16.3.3  选择爬取的项目 290

16.3.4  定义如何爬取 291

16.3.5  保存爬取的结果 295

16.3.6  分派任务 296

16.4  本章小结 298