图书目录

目    录

第1章  Python强势来袭 1

1.1  Python语言介绍 2

1.1.1  Python语言的优势 2

1.1.2  Python语言的特点 2

1.2  安装Python 3

1.2.1  选择版本 3

1.2.2  在Windows系统中下载并安装Python 4

1.3  使用IDLE 开发Python程序 6

1.3.1  IDLE介绍 6

1.3.2  使用IDLE开发第一个Python程序 7

1.4  实践案例与上机指导 8

1.4.1  安装PyCharm 8

1.4.2  使用PyCharm创建Python程序 11

1.5  思考与练习 14

第2章  基础语法知识介绍 15

2.1  独有的缩进规则 16

2.2  注释 17

2.3  标识符和关键字 18

2.4  变量 19

2.4.1  声明变量 19

2.4.2  局部变量 20

2.4.3  全局变量 21

2.5  输入和输出 22

2.5.1  实现输入功能 22

2.5.2  实现输出功能 23

2.6  字符串 24

2.6.1  实现字符串 24

2.6.2  访问字符串中的值 25

2.6.3  更新字符串 25

2.6.4  转义字符 26

2.6.5  格式化字符串 27

2.7  数字类型 28

2.7.1  整型int 28

2.7.2  浮点型 28

2.7.3  布尔型 29

2.7.4  复数型 30

2.8  实践案例与上机指导 31

2.8.1  多个变量同时进行赋值 31

2.8.2  使用字符串处理函数 32

2.9  思考与练习 33

第3章  运算符和表达式 35

3.1  运算符和表达式 36

3.2  算术运算符和算术表达式 36

3.3  比较运算符和比较表达式 38

3.4  赋值运算符和赋值表达式 39

3.4.1  基本赋值运算符和表达式 39

3.4.2  复合赋值运算符和表达式 40

3.5  位运算符和位表达式 41

3.6  逻辑运算符和逻辑表达式 42

3.7  成员运算符和成员表达式 43

3.8  实践案例与上机指导 44

3.8.1  使用身份运算符和身份表达式 45

3.8.2  运算符的优先级 45

3.9  思考与练习 47

第4章  使用条件语句 49

4.1  最简单的if语句 50

4.2  使用if…else语句 50

4.3  使用if…elif…else语句 52

4.4  实践案例与上机指导 53

4.4.1  if语句的嵌套 53

4.4.2  实现switch语句的功能 54

4.5  思考与练习 55

第5章  使用循环语句 57

5.1  使用for循环语句 58

5.1.1  最基本的for循环语句 58

5.1.2  通过序列索引迭代 59

5.1.3  使用for…else循环语句 59

5.1.4  使用嵌套for循环语句 60

5.2  使用while循环语句 61

5.2.1  最基本的while循环语句 61

5.2.2  使用while…else循环语句 62

5.2.3  注意死循环问题 63

5.2.4  使用while循环嵌套语句 63

5.3  实践案例与上机指导 64

5.3.1  使用break语句 64

5.3.2  使用continue语句 65

5.3.3  使用pass语句 66

5.4  思考与练习 67

第6章  数据结构 69

6.1  使用列表 70

6.1.1  列表的基本用法 70

6.1.2  删除列表中的重复元素并保持顺序不变 71

6.1.3  找出列表中出现次数最多的元素 73

6.1.4  排序类定义的实例 73

6.1.5  使用列表推导式 74

6.2  使用元组 75

6.2.1  创建并访问元组 76

6.2.2  修改元组 76

6.2.3  删除元组 77

6.2.4  使用内置方法操作元组 77

6.2.5  将序列分解为单独的变量 78

6.3  使用字典 79

6.3.1  创建并访问字典 80

6.3.2  添加、修改、删除字典中的元素 80

6.3.3  映射多个值 82

6.4  实践案例与上机指导 83

6.4.1  使用集合 84

6.4.2  使用内置类型转换函数转换数据类型 84

6.5  思考与练习 86

第7章  使用函数 87

7.1  Python函数的基础知识 88

7.1.1  定义函数 88

7.1.2  调用函数 89

7.2  函数的参数 90

7.2.1  形参和实参 90

7.2.2  必需参数 90

7.2.3  关键字参数 91

7.2.4  默认参数 92

7.2.5  不定长参数 92

7.2.6  按值传递参数和按引用传递参数 94

7.3  函数的返回值 95

7.3.1  返回一个简单值 95

7.3.2  可选实参 95

7.3.3  返回一个字典 96

7.4  变量的作用域 97

7.5  使用函数传递列表 98

7.5.1  访问列表中的元素 98

7.5.2  在函数中修改列表 99

7.6  实践案例与上机指导 100

7.6.1  使用匿名函数 100

7.6.2  导入整个模块文件 101

7.7  思考与练习 102

第8章  类和对象 103

8.1  定义并使用类 104

8.1.1  定义一个类 104

8.1.2  定义并使用类 104

8.2  对象 105

8.3  方法 106

8.3.1  定义并使用类方法 106

8.3.2  构造方法 107

8.3.3  方法调用 108

8.3.4  在类中创建多个实例 109

8.3.5  使用私有方法 110

8.3.6  析构方法 111

8.4  属性 112

8.4.1  认识属性 112

8.4.2  定义并使用类属性和实例属性 113

8.4.3  设置属性的默认值 114

8.5  实践案例与上机指导 115

8.5.1  使用继承 116

8.5.2  在子类中定义方法和属性 117

8.5.3  方法重写 118

8.6  思考与练习 119

第9章  模块、迭代器和生成器 121

9.1  模块架构 122

9.1.1  最基本的模块调用 122

9.1.2  目录__pycache__ 124

9.2  包 125

9.2.1  表示包 125

9.2.2  创建并使用包 125

9.2.3  使用包输出指定的内容 126

9.3  导入类 127

9.3.1  只导入一个类 127

9.3.2  导入多个类 128

9.4  迭代器 129

9.4.1  什么是迭代器 130

9.4.2  创建并使用迭代器 130

9.4.3  使用内置迭代器协议方法iter() 131

9.5  生成器 132

9.5.1  生成器的运行机制 132

9.5.2  创建生成器 134

9.6  实践案例与上机指导 135

9.6.1  使用__name__属性 135

9.6.2  从一个模块中导入多个类 136

9.6.3  使用协程重置生成器序列 136

9.7  思考与练习 137

第10章  文件操作 139

10.1  使用函数open()打开文件 140

10.2  使用File操作文件 141

10.2.1  File对象介绍 141

10.2.2  使用方法close() 143

10.2.3  使用方法flush() 143

10.2.4  使用方法fileno() 144

10.2.5  使用方法isatty() 144

10.2.6  使用方法next() 145

10.2.7  使用方法read() 145

10.2.8  使用方法readline() 146

10.2.9  使用方法readlines() 147

10.3  使用OS对象 148

10.3.1  OS对象介绍 148

10.3.2  使用方法access() 149

10.3.3  使用方法chdir() 150

10.3.4  使用方法chmod() 150

10.3.5  打开、写入和关闭 151

10.3.6  读取操作 153

10.3.7  使用方法mkdir() 154

10.4  实践案例与上机指导 154

10.4.1  使用方法makedirs()创建新的目录 155

10.4.2  使用方法listdir()获取目录下的信息 155

10.4.3  使用方法walk()获取目录下的信息 156

10.5  思考与练习 157

第11章  异常处理 159

11.1  最常见的语法错误 160

11.2  处理异常 161

11.2.1  使用try…except处理异常 161

11.2.2  使用try…except…else处理异常 163

11.2.3  使用try…except…finally处理异常 164

11.3  抛出异常 166

11.3.1  使用raise抛出异常 166

11.3.2  使用assert语句 167

11.3.3  自定义异常 168

11.4  内置异常类 168

11.4.1  常用的异常类 169

11.4.2  处理ZeroDivisionError异常 169

11.5  实践案例与上机指导 170

11.5.1  FileNotFoundError异常 170

11.5.2  except捕获方式 171

11.6  思考与练习 172

第12章  标准库函数 173

12.1  字符串处理函数 174

12.1.1  分割字符串 174

12.1.2  字符串开头和结尾处理 175

12.1.3  实现字符串匹配处理 176

12.1.4  文本查找和替换 178

12.2  数字处理函数 178

12.3  日期和时间函数 184

12.3.1  使用时间模块 184

12.3.2  使用calendar日历模块 188

12.4  实践案例与上机指导 190

12.4.1  使用decimal模块实现精确运算 190

12.4.2  使用类date的实例方法和属性实现日期操作 191

12.5  思考与练习 192

第13章  正则表达式 193

13.1  正则表达式的基本语法 194

13.1.1  普通字符 194

13.1.2  非打印字符 194

13.1.3  特殊字符 195

13.1.4  限定符 197

13.1.5  定位符 198

13.1.6  运算符优先级 199

13.2  使用re模块 199

13.2.1  re模块库函数介绍 199

13.2.2  使用函数compile() 201

13.2.3  使用函数match() 201

13.2.4  使用函数search() 203

13.3  使用Pattern对象 203

13.4  实践案例与上机指导 204

13.4.1  使用函数findall() 204

13.4.2  sub()和subn()函数 205

13.5  思考与练习 206

第14章  开发网络程序 209

14.1  Socket套接字编程 210

14.1.1  库Socket内置函数和属性 210

14.1.2  对象Socket的内置函数和属性 212

14.1.3  使用socket建立TCP“客户端/服务器”连接 214

14.1.4  使用socket建立UDP“客户端/服务器”连接 216

14.2  socketserver编程 218

14.2.1  socketserver模块基础 218

14.2.2  使用socketserver创建TCP“客户端/服务器”程序 219

14.3  使用select模块实现多路I/O复用 220

14.3.1  select模块介绍 220

14.3.2  I/O多路复用并实现读写分离 222

14.4  使用urllib包 223

14.4.1  urllib包介绍 223

14.4.2  使用urllib.request 模块 224

14.5  开发邮件程序 225

14.5.1  开发POP3邮件协议程序 225

14.5.2  开发SMTP邮件协议程序 228

14.6  实践案例与上机指导 230

14.6.1  实现一个机器人聊天程序 230

14.6.2  使用urllib.parse模块 231

14.7  思考与练习 233

第15章  多线程技术 235

15.1  使用_thread 模块 236

15.1.1  _thread模块介绍 236

15.1.2  使用_thread模块创建两个线程 236

15.2  使用threading模块 237

15.2.1  threading模块的核心方法 237

15.2.2  使用Thread对象 238

15.2.3  使用Lock和RLock对象 240

15.3  使用进程库multiprocessing 242

15.3.1  threading和multiprocessing的关系 242

15.3.2  使用Process 243

15.4  实践案例与上机指导 244

15.4.1  使用方法join()实现线程等待 244

15.4.2  使用Pipe对象创建双向管道 245

15.5  思考与练习 246

第16章  tkinter图形化界面开发 247

16.1  Python语言介绍 248

16.1.1  第一个tkinter程序 248

16.1.2  向窗体中添加组件 249

16.2  tkinter组件开发 249

16.2.1  tkinter组件概览 250

16.2.2  使用按钮控件 251

16.2.3  使用文本框控件 253

16.3  库tkinter的事件 254

16.3.1  tkinter事件基础 255

16.3.2  动态绘图程序 258

16.4  实践案例与上机指导 261

16.4.1  使用菜单控件 261

16.4.2  使用标签控件 262

16.5  思考与练习 263

第17章  使用数据库实现数据持久化 265

17.1  操作SQLite3数据库 266

17.1.1  sqlite3模块介绍 266

17.1.2  使用sqlite3模块操作SQLite3数据库 270

17.2  操作MySQL数据库 272

17.2.1  搭建PyMySQL环境 273

17.2.2  实现数据库连接 274

17.2.3  创建数据库表 274

17.2.4  数据库插入操作 275

17.2.5  数据库查询操作 276

17.2.6  数据库更新操作 277

17.3  使用MariaDB数据库 277

17.3.1  搭建MariaDB数据库环境 278

17.3.2  在Python程序中使用MariaDB数据库 280

17.4  实践案例与上机指导 282

17.4.1  用自定义排序规则以“错误方式”进行排序 282

17.4.2  创建一个 sqlite shell 283

17.5  思考与练习 284

第18章  使用Django开发Web程序 285

18.1  Django Web开发基础 286

18.1.1  Web开发和Web框架介绍 286

18.1.2  Django框架介绍 287

18.2  搭建Django开发环境 288

18.2.1  安装Django 288

18.2.2  常用的Django命令 289

18.3  实践案例与上机指导 291

18.3.1  使用Django命令创建Django Web项目 291

18.3.2  使用PyCharm创建Django Web项目 294

18.4  思考与练习 298

第19章  数据可视化 301

19.1  什么是数据可视化 302

19.1.1  数据可视化介绍 302

19.1.2  数据可视化的意义 302

19.2  matplotlib基础 303

19.2.1  搭建matplotlib环境 303

19.2.2  绘制一个简单的点 304

19.2.3  添加标题和标签 305

19.2.4  绘制最简单的折线 306

19.2.5  设置标签文字和线条粗细 307

19.2.6  绘制只有一个柱子的柱状图 308

19.2.7  绘制有两个柱子的柱状图 309

19.2.8  设置柱状图的标签 310

19.3  当Seaborn遇到matplotlib 314

19.3.1  搭建Seaborn环境 314

19.3.2  第一个Seaborn图形程序 315

19.3.3  绘制散点图 316

19.3.4  绘制折线图 317

19.3.5  绘制箱体图 318

19.3.6  绘制柱状图 319

19.4  实践案例与上机指导 320

19.4.1  使用matplotlib绘制3条不同颜色的折线 321

19.4.2  使用Seaborn绘制带有图示功能的柱状图 321

19.5  思考与练习 322

第20章  实时疫情监控系统 323

20.1  背景介绍 324

20.2  系统分析 324

20.2.1  需求分析 325

20.2.2  数据分析 325

20.3  具体实现 326

20.3.1  列出统计的省和地区的名字 326

20.3.2  查询北京地区的实时数据 327

20.3.3  查询并显示各地的实时数据 328

20.3.4  绘制实时全国疫情确诊数对比图 329

20.3.5  绘制实时确诊人数、新增确诊人数、死亡人数、治愈人数对比图 331

20.3.6  将实时疫情数据保存到CSV文件 334

20.3.7  绘制国内实时疫情统计图 334

20.3.8  可视化实时疫情的详细数据 336

20.3.9  绘制实时疫情信息统计图 338

20.3.10  绘制本年度国内疫情曲线图 339