《Python从菜鸟到高手》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:李宁编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302507161
  • 页数:632 页
图书介绍:首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识。

第一篇 Python基础知识 3

第1章 初识Python 3

1.1 Python简介 3

1.1.1 什么是Python 3

1.1.2 Python的应用领域 4

1.1.3 如何学好Python 5

1.1.4 Python API文档 6

1.2 搭建Python开发环境 8

1.2.1 安装官方的Python运行环境 9

1.2.2 配置PATH环境变量 11

1.2.3 安装Anaconda Python开发环境 13

1.2.4 下载和安装JDK 13

1.2.5 下载和安装Eclipse 16

1.2.6 Python IDE(PyDev)安装 17

1.2.7 配置Python IDE(PyDev)开发环境 20

1.2.8 测试Python IDE(PyDev)开发环境 21

1.2.9 安装PyCharm 22

1.2.10 配置PyCharm 23

1.2.11 Python中的REPL环境 25

1.3 第一个Python程序 26

1.4 调试Python程序 26

1.5 小结 29

1.6 实战与练习 29

第2章 Python语言基础 30

2.1 Python程序中的基本要素 30

2.1.1 导入Python模块 30

2.1.2 声明变量 32

2.1.3 清空Python控制台 32

2.2 数字 34

2.2.1 基础知识 34

2.2.2 大整数 36

2.2.3 二进制、八进制和十六进制 36

2.2.4 数字的格式化输出 37

2.3 获取用户输入 39

2.4 函数 40

2.5 注释 41

2.6 字符串基础 42

2.6.1 单引号字符串和转义符 42

2.6.2 拼接字符串 43

2.6.3 保持字符串的原汁原味 44

2.6.4 长字符串 46

2.7 小结 47

2.8 实战与练习 47

第3章 条件、循环和其他语句 49

3.1 神奇的print函数 49

3.2 有趣的赋值操作 51

3.3 用缩进创建代码块 53

3.4 条件和条件语句 53

3.4.1 布尔值和布尔变量 54

3.4.2 条件语句(if、else和elif) 55

3.4.3 嵌套代码块 56

3.4.4 比较运算符 57

3.4.5 断言 60

3.5 循环 62

3.5.1 while循环 62

3.5.2 for循环 63

3.5.3 跳出循环 65

3.5.4 循环中的else语句 67

3.6 使用exec和eval执行求值字符串 69

3.7 小结 71

3.8 实战与练习 71

第4章 列表和元组 73

4.1 定义序列 73

4.2 序列的基本操作 74

4.2.1 通过索引操作序列元素 74

4.2.2 分片 77

4.2.3 序列相加 83

4.2.4 序列的乘法 84

4.2.5 检查某个值是否属于一个序列 85

4.2.6 序列的长度、最大值和最小值 86

4.3 列表的基本操作 87

4.4 列表方法 89

4.5 元组 93

4.6 小结 95

4.7 实战与练习 95

第5章 字符串 97

5.1 字符串的基本操作 97

5.2 格式化字符串 98

5.2.1 字符串格式化基础 98

5.2.2 模板字符串 100

5.2.3 字符串的format方法 101

5.2.4 更进一步控制字符串格式化参数 102

5.2.5 字段宽度、精度和千位分隔符 104

5.2.6 符号、对齐、用0填充和进制转换 105

5.3 字符串方法 107

5.3.1 center方法 107

5.3.2 find方法 108

5.3.3 join方法 109

5.3.4 split方法 110

5.3.5 lower方法、upper方法和capwords函数 111

5.3.6 replace方法 112

5.3.7 strip方法 112

5.3.8 translate方法与maketrans方法 113

5.4 小结 114

5.5 实战与练习 115

第6章 字典 116

6.1 为什么要引入字典 116

6.2 创建和使用字典 117

6.2.1 dict函数 117

6.2.2 字典的基本操作 118

6.2.3 字典的格式化字符串 120

6.2.4 序列与迭代 121

6.3 字典方法 124

6.3.1 clear方法 124

6.3.2 copy方法与deepcopy函数 125

6.3.3 fromkeys方法 126

6.3.4 get方法 127

6.3.5 items方法和keys方法 128

6.3.6 pop方法和popitem方法 129

6.3.7 setdefault方法 130

6.3.8 update方法 131

6.3.9 values方法 132

6.4 小结 133

6.5 实战与练习 133

第7章 函数 134

7.1 懒惰是重用的基石 134

7.2 函数基础 136

7.2.1 创建函数 136

7.2.2 为函数添加文档注释 137

7.2.3 没有返回值的函数 138

7.3 函数参数 139

7.3.1 改变参数的值 139

7.3.2 关键字参数与默认值 144

7.3.3 变参数 147

7.3.4 将序列作为函数的参数值 151

7.4 作用域 154

7.5 递归 156

7.6 小结 158

7.7 实战与练习 158

第8章 类和对象 159

8.1 对象的魔法 159

8.2 类 160

8.2.1 创建自己的类 160

8.2.2 方法和私有化 161

8.2.3 类代码块 163

8.2.4 类的继承 164

8.2.5 检测继承关系 165

8.2.6 多继承 167

8.2.7 接口 169

8.3 小结 170

8.4 实战与练习 171

第9章 异常 172

9.1 什么是异常 172

9.2 主动抛出异常 173

9.2.1 raise语句 173

9.2.2 自定义异常类 175

9.3 捕捉异常 176

9.3.1 try…except语句的基本用法 176

9.3.2 捕捉多个异常 177

9.3.3 用同一个代码块处理多个异常 179

9.3.4 捕捉对象 180

9.3.5 异常捕捉中的else子句 182

9.3.6 异常捕捉中的finally子句 183

9.4 异常、函数与栈跟踪 185

9.5 异常的妙用 186

9.6 小结 188

9.7 实战与练习 188

第10章 方法、属性和迭代器 189

10.1 构造方法 189

10.1.1 构造方法的基础知识 189

10.1.2 重写普通方法和构造方法 190

10.1.3 使用super函数 193

10.2 特殊成员方法 194

10.2.1 自定义序列 194

10.2.2 从内建列表、字符串和字典继承 197

10.3 属性 199

10.3.1 传统的属性 199

10.3.2 property函数 201

10.3.3 监控对象中所有的属性 203

10.4 静态方法和类方法 205

10.5 迭代器 207

10.5.1 自定义可迭代的类 207

10.5.2 将迭代器转换为列表 209

10.6 生成器 210

10.6.1 创建生成器 210

10.6.2 递归生成器 212

10.7 小结 213

10.8 实战与练习 214

第二篇 Python高级编程 217

第11章 正则表达式 217

11.1 在Python语言中使用正则表达式 217

11.1.1 使用match方法匹配字符串 217

11.1.2 使用search方法在一个字符串中查找模式 218

11.1.3 匹配多个字符串 219

11.1.4 匹配任何单个字符 220

11.1.5 使用字符集 221

11.1.6 重复、可选和特殊字符 223

11.1.7 分组 226

11.1.8 匹配字符串的起始和结尾以及单词边界 228

11.1.9 使用findall和finditer查找每一次出现的位置 229

11.1.10 用sub和subn搜索与替换 230

11.1.11 使用split分隔字符串 232

11.2 一些常用的正则表达式 232

11.3 小结 233

11.4 实战与练习 234

第12章 常用模块 235

12.1 sys模块 235

12.2 os模块 238

12.2.1 获取与改变工作目录 238

12.2.2 文件与目录操作 239

12.2.3 软链接与硬链接 240

12.2.4 杂项 241

12.3 集合、堆和双端队列(heap模块、deque类) 243

12.3.1 集合 244

12.3.2 堆 247

12.3.3 双端队列 249

12.4 时间、日期与日历(time模块) 250

12.4.1 时间元组 250

12.4.2 格式化日期和时间 251

12.4.3 时间戳的增量 253

12.4.4 计算日期和时间的差值 254

12.4.5 获取某月和某年的日历 255

12.5 随机数(random模块) 256

12.6 数学(math模块) 257

12.7 小结 258

12.8 实战与练习 258

第13章 文件和流 259

13.1 打开文件 259

13.2 操作文件的基本方法 260

13.2.1 读文件和写文件 261

13.2.2 管道输出 262

13.2.3 读行和写行 264

13.3 使用FileInput对象读取文件 265

13.4 小结 266

13.5 实战与练习 266

第14章 数据存储 268

14.1 处理XML格式的数据 268

14.1.1 读取与搜索XML文件 268

14.1.2 字典转换为XML字符串 270

14.1.3 XML字符串转换为字典 272

14.2 处理JSON格式的数据 273

14.2.1 JSON字符串与字典互相转换 273

14.2.2 将JSON字符串转换为类实例 275

14.2.3 将类实例转换为JSON字符串 276

14.2.4 类实例列表与JSON字符串互相转换 277

14.3 将JSON字符串转换为XML字符串 278

14.4 SQLite数据库 279

14.4.1 管理SQLite数据库 279

14.4.2 用Python操作SQLite数据库 281

14.5 MySQL数据库 284

14.6 ORM 286

14.6.1 SQLAlchemy 287

14.6.2 SQLObject 291

14.7 非关系型数据库 294

14.7.1 NoSQL简介 294

14.7.2 MongoDB数据库 295

14.7.3 pymongo模块 296

14.8 小结 297

14.9 实战与练习 297

第15章 TCP与UDP编程 299

15.1 套接字 299

15.1.1 建立TCP服务端 299

15.1.2 服务端接收数据的缓冲区 303

15.1.3 服务端的请求队列 305

15.1.4 TCP时间戳服务端 307

15.1.5 用Socket实现HTTP服务器 307

15.1.6 客户端Socket 311

15.1.7 UDP时间戳服务端 312

15.1.8 UDP时间戳客户端 313

15.2 socketserver模块 314

15.2.1 实现socketserver TCP时间戳服务端 314

15.2.2 实现socketserver TCP时间戳客户端 315

15.3 小结 316

15.4 实战与练习 316

第16章 网络高级编程 317

16.1 urllib3模块 317

16.1.1 发送HTTP GET请求 318

16.1.2 发送HTTP POST请求 319

16.1.3 HTTP请求头 320

16.1.4 HTTP响应头 322

16.1.5 上传文件 323

16.1.6 超时 325

16.2 twisted框架 326

16.2.1 异步编程模型 327

16.2.2 Reactor(反应堆)模式 329

16.2.3 HelloWorld(twisted框架) 329

16.2.4 用twisted实现时间戳客户端 331

16.2.5 用twisted实现时间戳服务端 332

16.2.6 用twisted获取Email邮箱目录列表 333

16.3 FTP客户端 338

16.4 Email客户端 341

16.4.1 使用SMTP发送简单的Email 341

16.4.2 使用SMTP发送带附件的Email 343

16.4.3 使用POP3接收Email 344

16.4.4 使用IMAP4接收Email 346

16.5 小结 348

16.6 实战与练习 348

第17章 多线程 349

17.1 线程与进程 349

17.1.1 进程 349

17.1.2 线程 349

17.2 Python与线程 350

17.2.1 使用单线程执行程序 350

17.2.2 使用多线程执行程序 351

17.2.3 为线程函数传递参数 352

17.2.4 线程和锁 353

17.3 高级线程模块 355

17.3.1 Thread类与线程函数 355

17.3.2 Thread类与线程对象 356

17.3.3 从Thread类继承 357

17.4 线程同步 359

17.4.1 线程锁 359

17.4.2 信号量 361

17.5 生产者—消费者问题与queue模块 364

17.6 小结 366

17.7 实战与练习 366

第18章 GUI库:tkinter 368

18.1 tkinter 简介 368

18.2 编写第一个tkinter程序 368

18.3 布局 370

18.3.1 pack布局 370

18.3.2 place布局 376

18.3.3 grid布局 377

18.4 控件 378

18.4.1 Label控件和Button控件 378

18.4.2 Entry控件与Text控件 380

18.4.3 Radiobutton控件 382

18.4.4 Checkbutton控件 383

18.4.5 Scale控件 384

18.4.6 Listbox控件 386

18.5 向窗口添加菜单 387

18.6 对话框 389

18.7 小结 390

18.8 实战与练习 390

第19章 GUI库:PyQt5 391

19.1 PyQt5简介 391

19.2 安装PyQt5 392

19.2.1 PyQt5开发环境搭建 392

19.2.2 配置QTDesigner(可视化开发) 392

19.2.3 配置PyUIC 395

19.3 编写第一个PyQt5程序 397

19.4 窗口的基本功能 398

19.4.1 设置窗口图标 398

19.4.2 显示提示框 398

19.4.3 关闭窗口 399

19.4.4 消息盒子 400

19.4.5 窗口居中 401

19.5 布局 402

19.5.1 绝对布局 402

19.5.2 盒布局 403

19.5.3 网格布局 405

19.6 控件 406

19.6.1 QPushButton控件 406

19.6.2 QLineEdit控件 408

19.6.3 QCheckBox控件 409

19.6.4 QSlider控件 410

19.6.5 QProgressBar控件 411

19.6.6 QPixmap控件 413

19.6.7 QComboBox控件 414

19.6.8 QCalendarWidget控件 415

19.7 菜单 416

19.8 小结 418

19.9 实战与练习 418

第20章 测试 419

20.1 先测试后编码 419

20.1.1 为代码划定边界 420

20.1.2 测试的步骤 421

20.2 测试工具 421

20.2.1 doctest 421

20.2.2 unittest 423

20.3 检查源代码 424

20.3.1 PyLint 425

20.3.2 Flake8 426

20.4 性能分析 428

20.5 小结 429

20.6 实战与练习 429

第三篇 Python Web开发 433

第21章 Python Web框架:Flask 433

21.1 Flask基础知识 434

21.1.1 使用8行代码搞定Web应用 434

21.1.2 静态路由和动态路由 435

21.1.3 获取HTTP请求数据 438

21.1.4 Response与Cookie 439

21.1.5 会话 441

21.1.6 静态文件和重定向 443

21.2 Jinja2模板 443

21.2.1 第一个基于Jinja2模板的Web应用 444

21.2.2 在Jinja2模板中使用复杂数据 445

21.2.3 在Jinja2模板中的过滤器 447

21.2.4 条件控制 448

21.2.5 循环控制 450

21.2.6 宏操作 452

21.2.7 include指令 455

21.2.8 模板继承 457

21.2.9 使用flask-bootstrap模块集成Twitter Bootstrap 458

21.2.10 自定义错误页面 460

21.3 Web表单与Flask-WTF扩展 461

21.3.1 表单类 462

21.3.2 简单的表单组件 464

21.3.3 单选和多选组件 467

21.3.4 表单校验器 469

21.3.5 获取和设置表单组件中的数据 472

21.4 小结 473

21.5 实战与练习 474

第22章 Python Web框架:Django 475

22.1 Django开发环境搭建 475

22.2 Django基础知识 476

22.2.1 建立第一个Django工程 476

22.2.2 Django工程结构分析 477

22.2.3 远程访问与端口号 477

22.2.4 用PyCharm建立Django工程 478

22.2.5 添加路由 480

22.2.6 在MyCharm中指定IP和端口号 482

22.2.7 处理HTTP请求 482

22.2.8 Response与Cookie 484

22.2.9 读写Session 485

22.2.10 用户登录 487

22.2.11 静态文件 488

22.3 Django模板 490

22.3.1 编写第一个基于Django模板的应用 490

22.3.2 条件控制标签 492

22.3.3 循环控制标签 493

22.3.4 过滤器 494

22.4 小结 496

22.5 实战与练习 496

第四篇 Python科学计算与数据分析 499

第23章 科学计算库:NumPy 499

23.1 NumPy开发环境搭建 499

23.2 第一个NumPy程序 500

23.3 NumPy数组 501

23.3.1 创建多维数组 501

23.3.2 获取数组值和数组的分片 502

23.3.3 改变数组的维度 502

23.3.4 水平组合数组 503

23.3.5 垂直数组组合 505

23.3.6 水平分隔数组 505

23.3.7 垂直分隔数组 507

23.3.8 将数组转换为Python列表 508

23.4 NumPy常用函数 509

23.4.1 存取NumPy数组 509

23.4.2 读写CSV文件 510

23.4.3 成交量加权平均价格 511

23.4.4 数组的最大值、最小值和取值范围 512

23.4.5 计算数组的中位数和方差 513

23.4.6 计算两只股票的相关性 514

23.5 小结 515

23.6 实战与练习 515

第24章 数据可视化库:Matplotlib 516

24.1 Matplotlib开发环境搭建 516

24.2 基础知识 517

24.2.1 第一个Matplotlib程序 517

24.2.2 绘制正弦曲线和余弦曲线 518

24.2.3 绘制随机点 519

24.2.4 绘制柱状图 520

24.2.5 绘制直方图与盒状图 521

24.2.6 绘制饼图 523

24.3 定制颜色和样式 524

24.3.1 定制曲线的颜色 524

24.3.2 定制离散点的样式 525

24.3.3 定制柱状图颜色 526

24.3.4 定制饼图颜色 526

24.3.5 定制曲线类型 527

24.3.6 定制柱状图的填充模式 528

24.4 注释 529

24.4.1 在坐标系上显示标题 529

24.4.2 使用LaTex格式的标题 529

24.4.3 为X轴和Y轴添加注释 530

24.4.4 在坐标系指定位置放置注释 531

24.4.5 为文本注释添加Box 532

24.5 小结 532

24.6 实战与练习 533

第25章 数据分析库:Pandas 534

25.1 Pandas开发环境搭建 534

25.2 样本数据集 534

25.3 Pandas基础知识 535

25.3.1 数据集的装载与基础操作 535

25.3.2 查看数据集中的列 536

25.3.3 查看数据集的行 537

25.3.4 查看数据集单元格中的数据 538

25.3.5 对数据集进行分组统计 539

25.3.6 可视化统计数据 540

25.4 Pandas数据类型 541

25.4.1 创建Series 541

25.4.2 创建DataFrame 542

25.4.3 Series的基本操作 543

25.4.4 Series的方法 544

25.4.5 Series的条件过滤 545

25.4.6 DataFrame的条件过滤 546

25.5 小结 547

25.6 实战与练习 548

第五篇 Python Web爬虫技术 551

第26章 网络爬虫与Beautiful Soup 551

26.1 网络爬虫基础 551

26.1.1 爬虫分类 552

26.1.2 编写第1个网络爬虫 552

26.1.3 保存抓取的数据 555

26.1.4 从百度抓取海量比基尼美女图片 557

26.2 HTML分析库:Beautiful Soup 560

26.2.1 如何使用Beautiful Soup 560

26.2.2 Tag对象的name和string属性 562

26.2.3 读写标签属性 563

26.2.4 用Beautiful Soup分析京东首页的HTML代码 564

26.2.5 通过回调函数过滤标签 565

26.3 支持下载队列的多线程网络爬虫 566

26.4 小结 568

26.5 实战与练习 568

第27章 网络爬虫框架:Scrapy 570

27.1 Scrapy基础知识 570

27.1.1 Scrapy简介 570

27.1.2 Scrapy安装 571

27.1.3 Scrapy Shell抓取Web资源 571

27.1.4 XPath入门 573

27.2 用Scrapy编写网络爬虫 574

27.2.1 创建和使用Scrapy工程 574

27.2.2 在PyCharm中使用Scrapy 575

27.2.3 使用Scrapy抓取数据并通过XPath指定解析规则 576

27.2.4 将抓取到的数据保存为多种格式的文件 577

27.3 小结 578

27.4 实战与练习 578

第六篇 Python项目实战 581

第28章 Web项目实战:基于Flask的美团网 581

28.1 项目概述 581

28.1.1 项目效果演示 581

28.1.2 项目工程结构 582

28.2 美团网核心功能实现 583

28.2.1 设计服务API 583

28.2.2 用Ajax技术与服务端交互 584

28.3 Python与微信支付 585

28.3.1 微信支付要准备的数据以及支付流程 585

28.3.2 编写支付核心类WXPay 586

28.4 小结 588

第29章 Web项目实战:基于Django的58同城 589

29.1 项目效果演示 589

29.2 操作MySQL数据库 590

29.3 账号 590

29.3.1 用户注册 591

29.3.2 用户登录 592

29.4 招聘页面 594

29.5 二手车页面 595

29.6 小结 597

第30章 网络爬虫实战:天气预报服务API 598

30.1 项目效果演示 598

30.2 建立MySQL数据库 599

30.3 抓取天气预报数据 599

30.4 编写天气预报服务API 600

30.5 实现Web版天气预报查询客户端 601

30.6 小结 601

第31章 爬虫项目实战:胸罩销售数据分析 602

31.1 项目效果演示 602

31.2 天猫胸罩销售数据 604

31.2.1 天猫胸罩销售数据分析 604

31.2.2 抓取天猫胸罩销售数据 605

31.2.3 抓取胸罩商品列表 605

31.2.4 将抓取的销售数据保存到SQLite数据库中 606

31.3 京东胸罩销售数据 607

31.3.1 京东胸罩销售数据分析 607

31.3.2 抓取京东胸罩销售数据 608

31.4 数据清洗 609

31.5 数据分析与可视化 611

31.5.1 用SQL语句分析胸罩(按罩杯尺寸)的销售比例 611

31.5.2 用Pandas和Matplotlib对胸罩销售比例进行可视化分析 612

31.5.3 按上胸围分析胸罩的销售比例 613

31.5.4 罩杯和上胸围综合数据可视化分析 614

31.5.5 统计哪一种颜色的胸罩卖得最好 615

31.5.6 用盒状图与直方图表示罩杯与上胸围分布 617

31.6 小结 618

第32章 GUI项目实战:动态修改域名指向的IP 619

32.1 搭建开发环境 619

32.2 项目效果演示 619

32.3 获取公网IP 620

32.4 定时更新公网IP 621

32.5 更新域名对应的IP 622

32.6 小结 623

第33章 游戏项目实战:俄罗斯方块 624

33.1 搭建开发环境 624

33.2 项目效果演示 624

33.3 用户注册 625

33.4 用户登录 626

33.5 游戏界面绘制和渲染 628

33.6 用按键控制游戏 629

33.7 播放背景音乐 630

33.8 用户积分 631

33.9 小结 632