《Python编程从入门到精通》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:叶维忠编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2018
  • ISBN:9787115478801
  • 页数:429 页
图书介绍:本书循序渐进、由浅入深地详细讲解了Python语言开发的核心技术,并通过具体实例的实现过程演练了各个知识点的具体使用流程。通过两个综合实例的实现过程,介绍了Python语言在综合项目中的使用流程。全书内容循序渐进,以“技术解惑”和“范例演练”贯穿全书,引领读者全面掌握Python语言。

第1章 Python如日中天 1

1.1 Python语言基础 2

1.1.1 编程世界的“琅琊榜” 2

1.1.2 Python为什么这么火 2

1.1.3 Python语言的特点 3

1.2 安装Python 3

1.2.1 选择版本 4

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

1.2.3 在Mac系统中下载并安装 Python 5

1.2.4 在Linux系统中下载并安装 Python 6

1.3 Python开发工具介绍 6

1.3.1 使用IDLE 6

1.3.2 使用Emacs 7

1.4 认识第一段Python程序 10

1.4.1 编码并运行 10

1.4.2 其他运行方式 11

1.5 技术解惑 12

1.5.1 提高开发效率——安装文本编辑器 12

1.5.2 快速运行Hello World程序 12

1.5.3 在终端会话中运行Python 代码 13

1.6 课后练习 13

第2章 Python基础语法 14

2.1 缩进规则 15

2.2 注释 16

2.3 编码 17

2.3.1 字符编码 17

2.3.2 Unicode编码和UTF-8编码 17

2.3.3 Python中的编码 18

2.4 标识符和关键字 19

2.5 变量 20

2.6 输入和输出 21

2.6.1 实现输入功能 22

2.6.2 实现输出功能 22

2.7 技术解惑 23

2.7.1 使用注释时的注意事项 23

2.7.2 注意变量的命名规则和建议 23

2.7.3 注意Python语言的缩进规则 24

2.7.4 变量赋值的真正意义 24

2.7.5 解码字节流 24

2.8 课后练习 24

第3章 简单数据类型 25

3.1 Python中的数据类型 26

3.2 字符串 26

3.2.1 访问字符串中的值 26

3.2.2 更新字符串 27

3.2.3 转义字符 27

3.2.4 格式化字符串 28

3.2.5 字符串处理函数 29

3.3 数字类型 30

3.3.1 整型 30

3.3.2 浮点型 31

3.3.3 布尔型 31

3.3.4 复数型 32

3.4 技术解惑 33

3.4.1 总结整数支持的运算符 33

3.4.2 总结Python中的数学函数 33

3.4.3 字符串的格式化技巧 34

3.5 课后练习 34

第4章 运算符和表达式 35

4.1 什么是运算符和表达式 36

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

4.3 比较运算符和比较表达式 37

4.4 赋值运算符和赋值表达式 38

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

4.4.2 复合赋值运算符和表达式 39

4.5 位运算符和位表达式 40

4.6 逻辑运算符和逻辑表达式 41

4.7 成员运算符和成员表达式 42

4.8 身份运算符和身份表达式 43

4.9 运算符的优先级 44

4.10 技术解惑 45

4.10.1 “==”运算符的秘密 45

4.10.2 身份运算符的特质 46

4.10.3 总结and和or的用法 46

4.10.4 is运算符和“==”运算符的区别 47

4.11 课后练习 47

第5章 条件语句 48

5.1 什么是条件语句 49

5.2 最简单的if语句 49

5.3 使用if...else语句 50

5.4 使用if...elif...else语句 51

5.5 if语句的嵌套 52

5.6 实现switch语句的功能 53

5.6.1 使用elif实现 54

5.6.2 使用字典实现 54

5.6.3 自定义编写一个类实现 55

5.7 技术解惑 56

5.7.1 剖析True和False条件判断的用法 56

5.7.2 再次提醒不支持switch语句的问题 56

5.7.3 最简洁的条件判断语句写法 56

5.8 课后练习 57

第6章 循环语句 58

6.1 使用for循环语句 59

6.1.1 基本的for循环语句 59

6.1.2 通过序列索引迭代 60

6.1.3 使用for...else循环语句 60

6.1.4 嵌套for循环语句 61

6.2 使用while循环语句 62

6.2.1 基本的while循环语句 62

6.2.2 使用while...else循环语句 63

6.2.3 死循环问题 63

6.2.4 使用while循环嵌套语句 64

6.3 使用循环控制语句 65

6.3.1 使用break语句 65

6.3.2 使用continue语句 66

6.3.3 使用pass语句 67

6.4 技术解惑 67

6.4.1 总结for循环语句 67

6.4.2 总结break和continue语句 68

6.4.3 使用while循环的注意事项 68

6.5 课后练习 68

第7章 使用列表 69

7.1 列表类型基础 70

7.1.1 创建数字列表 70

7.1.2 访问列表中的值 71

7.1.3 使用列表中的值 72

7.2 列表的基本操作 73

7.2.1 更新列表元素 73

7.2.2 插入新的元素 73

7.2.3 在列表中删除元素 75

7.3 列表排列处理 77

7.3.1 使用方法sort()对列表进行永久性排序 77

7.3.2 使用方法sorted()对列表进行临时排序 78

7.3.3 倒序输出列表中的信息 78

7.3.4 获取列表的长度 79

7.4 列表的高级操作 79

7.4.1 列表中的运算符 79

7.4.2 列表截取与拼接 80

7.4.3 列表嵌套 80

7.4.4 获取列表元素中的最大值和最小值 81

7.4.5 追加其他列表中的值 81

7.4.6 在列表中统计某元素出现的次数 82

7.4.7 清空列表中的元素 82

7.4.8 复制列表中的元素 83

7.4.9 获取列表中某个元素的索引 83

7.5 技术解惑 84

7.5.1 注意排列顺序的多样性 84

7.5.2 尝试有意引发错误 84

7.6 课后练习 84

第8章 使用元组、字典和集合 85

8.1 使用元组类型 86

8.1.1 创建并访问元组 86

8.1.2 修改元组 87

8.1.3 删除元组 88

8.1.4 元组索引和截取 88

8.1.5 使用内置方法操作元组 89

8.2 使用字典 89

8.2.1 创建并访问字典 89

8.2.2 向字典中添加数据 90

8.2.3 修改字典 91

8.2.4 删除字典中的元素 91

8.2.5 创建空字典 92

8.2.6 和字典有关的内置函数 92

8.3 遍历字典 92

8.3.1 一次性遍历所有的“键值”对 93

8.3.2 遍历字典中的所有键 93

8.3.3 按序遍历字典中的所有键 94

8.3.4 遍历字典中的所有值 94

8.4 字典嵌套 95

8.4.1 字典列表 95

8.4.2 在字典中存储字典 96

8.4.3 在字典中存储列表 97

8.5 使用其他内置方法 97

8.5.1 使用方法clear()清空字典 97

8.5.2 使用方法copy()复制字典 98

8.5.3 使用方法fromkeys()创建新字典 98

8.5.4 使用方法get()获取指定的键值 99

8.5.5 使用方法setdefault()获取指定的键值 99

8.5.6 使用方法update()修改字典 100

8.6 使用集合 100

8.7 类型转换 101

8.7.1 内置类型转换函数 101

8.7.2 类型转换综合演练 102

8.8 技术解惑 103

8.8.1 for遍历方式并不是万能的 103

8.8.2 两种字典遍历方式的性能对比 104

8.9 课后练习 104

第9章 使用函数 105

9.1 函数基础 106

9.1.1 定义函数 106

9.1.2 调用函数 107

9.2 函数的参数 107

9.2.1 形参和实参 108

9.2.2 必需参数 108

9.2.3 关键字参数 108

9.2.4 默认参数 109

9.2.5 不定长参数 109

9.2.6 按值传递参数和按引用传递参数 110

9.3 函数的返回值 111

9.3.1 返回一个简单值 111

9.3.2 可选实参 111

9.3.3 返回一个字典 112

9.4 变量的作用域 113

9.5 使用函数传递列表 114

9.5.1 访问列表中的元素 114

9.5.2 在函数中修改列表 115

9.6 使用匿名函数 115

9.7 函数和模块开发 116

9.7.1 导入整个模块文件 116

9.7.2 只导入指定的函数 117

9.7.3 使用as指定函数别名 118

9.7.4 使用as指定模块别名 118

9.7.5 导入所有函数 119

9.8 技术解惑 119

9.8.1 Python内置函数大全 119

9.8.2 一个项目引发的问题 120

9.8.3 使用递归方法展开多层列表 120

9.9 课后练习 121

第10章 面向对象(上) 122

10.1 定义并使用类 123

10.1.1 定义类 123

10.1.2 类的基本用法 123

10.2 类对象 124

10.3 类方法 124

10.3.1 定义并使用类方法 124

10.3.2 构造方法 125

10.3.3 方法调用 126

10.3.4 创建多个实例 127

10.3.5 使用私有方法 128

10.3.6 析构方法 129

10.3.7 静态方法和类方法 129

10.3.8 类的专有方法 130

10.4 类属性 131

10.4.1 认识属性 131

10.4.2 类属性和实例属性 131

10.4.3 设置属性的默认值 132

10.4.4 修改属性的值 133

10.4.5 使用私有属性 135

10.5 继承 135

10.5.1 定义子类 135

10.5.2 在子类中定义方法和属性 137

10.5.3 子类可以继续派生新类 137

10.5.4 私有属性和私有方法 138

10.5.5 多重继承 139

10.6 方法重写 140

10.7 技术解惑 141

10.7.1 究竟什么是面向对象 141

10.7.2 Python语言的面向对象编程 142

10.7.3 必须掌握的统一建模语言 143

10.7.4 构造函数和析构函数的特殊说明 143

10.8 课后练习 143

第11章 面向对象(下) 144

11.1 模块架构 145

11.1.1 最基本的模块调用 145

11.1.2 目录“___pycache___” 146

11.1.3 使用“___name___”属性 147

11.2 使用包 148

11.2.1 表示包 148

11.2.2 创建并使用包 149

11.2.3 实战演练 150

11.3 导入类 151

11.3.1 只导入一个类 151

11.3.2 导入指定的类 152

11.3.3 从一个模块中导入多个类 152

11.3.4 导入整个模块 153

11.3.5 在一个模块中导入另一个模块 153

11.4 迭代器 154

11.4.1 什么是迭代器 154

11.4.2 创建并使用迭代器 155

11.4.3 使用内置迭代器方法iter() 156

11.5 生成器 157

11.5.1 生成器的运行机制 157

11.5.2 创建生成器 158

11.5.3 注意生成器的第一次调用 159

11.5.4 使用协程重置生成器序列 160

11.6 装饰器 160

11.6.1 创建装饰器 160

11.6.2 使用装饰器装饰函数 161

11.6.3 使用装饰器装饰类 162

11.7 命名空间 163

11.7.1 命名空间的本质 163

11.7.2 查找命名空间 164

11.7.3 命名空间的生命周期 165

11.7.4 命名空间访问函数locals()与globals() 165

11.8 闭包 167

11.8.1 什么是闭包 167

11.8.2 闭包和嵌套函数 168

11.8.3 使用闭包记录函数的调用次数 168

11.8.4 使用闭包实现延迟请求 169

11.8.5 闭包和装饰器 169

11.8.6 使用闭包定义泛型函数 170

11.9 技术解惑 171

11.9.1 导入包的秘诀 171

11.9.2 无限迭代器的秘密 172

11.10 课后练习 172

第12章 文件操作处理 173

12.1 使用open()函数打开文件 174

12.2 使用File操作文件 175

12.2.1 File对象介绍 175

12.2.2 使用close()方法关闭操作 176

12.2.3 使用方法flush() 176

12.2.4 使用方法fileno() 177

12.2.5 使用方法isatty() 177

12.2.6 使用方法next() 178

12.2.7 使用方法read() 178

12.2.8 使用方法readline() 179

12.2.9 使用方法readlines() 180

12.2.10 使用方法seek() 180

12.2.11 使用方法tell() 181

12.2.12 使用方法truncate() 182

12.2.13 使用方法writelines() 182

12.3 使用OS对象 183

12.3.1 OS对象介绍 183

12.3.2 使用方法access() 185

12.3.3 使用方法chdir() 186

12.3.4 使用方法chmod() 186

12.3.5 打开、写入和关闭 187

12.3.6 打开、读取和关闭 189

12.3.7 创建目录 189

12.3.8 获取目录下的信息 190

12.3.9 修改目录 192

12.3.10 删除目录 193

12.4 其他常见的文件操作 194

12.4.1 使用fileinput模块 194

12.4.2 批量获取文件名 195

12.5 技术解惑 196

12.5.1 注意包含文件的具体范围 196

12.5.2 4点注意事项 196

12.6 课后练习 196

第13章 异常处理 197

13.1 语法错误 198

13.2 异常处理 199

13.2.1 异常的特殊之处 199

13.2.2 使用“try...except”处理异常 199

13.2.3 使用“try...except...else”处理异常 201

13.2.4 使用“try...except...finally”语句 202

13.3 抛出异常 202

13.3.1 使用raise抛出异常 203

13.3.2 使用assert语句 203

13.3.3 自定义异常 204

13.4 内置异常类 205

13.4.1 处理ZeroDivisionError异常 205

13.4.2 FileNotFoundError异常 206

13.4.3 except捕获方式 207

13.4.4 使用函数testmod() 207

13.4.5 使用单元测试函数testfile() 208

13.5 技术解惑 209

13.5.1 注意assert语句的妙用 209

13.5.2 定义清理行为 209

13.5.3 妙用预定义的清理行为 210

13.6 课后练习 210

第14章 正则表达式 211

14.1 基本语法 212

14.1.1 普通字符 212

14.1.2 非打印字符 212

14.1.3 特殊字符 213

14.1.4 限定符 216

14.1.5 定位符 217

14.1.6 限定范围和否定 218

14.1.7 运算符优先级 218

14.2 使用re模块 218

14.2.1 re模块库函数介绍 219

14.2.2 使用函数compile() 219

14.2.3 使用函数match() 220

14.2.4 使用函数search() 221

14.2.5 使用函数findall() 222

14.2.6 sub()和subn()函数 223

14.3 使用Pattern对象 224

14.4 正则表达式模式 224

14.5 技术解惑 228

14.5.1 生活中的正则表达式 228

14.5.2 为什么使用正则表达 228

14.5.3 分析函数re.match()和函数re.search()的区别 228

14.5.4 不能将限定符与定位点一起使用 228

14.6 课后练习 229

第15章 多线程开发 230

15.1 线程和进程基础 231

15.2 Python线程处理 231

15.2.1 使用thread模块 231

15.2.2 使用threading模块:threading模块介绍 232

15.2.3 使用threading模块:直接在线程中运行函数 233

15.2.4 使用threading模块:通过继承类threading.Thread创建 233

15.2.5 使用threading模块:线程等待 234

15.2.6 使用threading模块:线程同步 234

15.3 线程优先级队列模块queue 236

15.3.1 模块queue中的常用方法 236

15.3.2 基本FIFO队列 236

15.3.3 LIFO队列 237

15.3.4 优先级队列 237

15.4 使用模块subprocess创建进程 238

15.4.1 模块subprocess介绍 238

15.4.2 使用类Popen创建进程 240

15.5 技术解惑 242

15.5.1 线程带来的意义你知道吗 242

15.5.2 线程和进程的区别 244

15.6 课后练习 244

第16章 Tkinter图形化界面开发 245

16.1 Python图形化界面开发基础 246

16.1.1 GUI介绍 246

16.1.2 使用Python语言编写GUI程序 246

16.2 Tkinter开发基础 247

16.2.1 第一个Tkinter程序 247

16.2.2 向窗体中添加组件 248

16.3 Tkinter组件开发详解 248

16.3.1 Tkinter组件概览 249

16.3.2 使用按钮控件 250

16.3.3 使用文本框控件 251

16.3.4 使用菜单控件 252

16.3.5 使用标签控件 253

16.3.6 使用单选按钮和复选按钮控件 254

16.3.7 使用绘图控件 256

16.4 Tkinter库的事件 257

16.4.1 Tkinter事件基础 258

16.4.2 动态绘图程序 259

16.5 实现对话框效果 261

16.5.1 创建消息框 261

16.5.2 创建输入对话框 263

16.5.3 创建打开/保存文件对话框 264

16.5.4 创建颜色选择对话框 265

16.5.5 创建自定义对话框 265

16.6 技术解惑 267

16.6.1 格外注意方法pack()的参数 267

16.6.2 请务必注意方法grid()的参数 267

16.6.3 请务必注意方法place()的属性 267

16.7 课后练习 267

第17章 网络编程 268

17.1 网络开发基础 269

17.1.1 OSI七层网络模型 269

17.1.2 TCP/IP协议 270

17.2 套接字编程 270

17.2.1 socket()函数介绍 270

17.2.2 socket对象的内置函数和属性 271

17.2.3 使用套接字建立TCP“客户端/服务器”连接 272

17.2.4 使用套接字建立UDP“客户端/服务器”连接 274

17.3 socketserver编程 275

17.3.1 socketserver模块基础 275

17.3.2 使用socketserver创建TCP“客户端/服务器”连接 276

17.4 HTTP协议开发 277

17.4.1 使用urllib包 277

17.4.2 使用HTTP包 280

17.5 收发电子邮件 281

17.5.1 开发POP3邮件协议程序 281

17.5.2 开发SMTP邮件协议程序 283

17.6 开发FTP文件传输程序 285

17.6.1 Python和FTP 285

17.6.2 创建一个FTP文件传输客户端 287

17.7 解析XML 289

17.7.1 SAX解析方法 289

17.7.2 DOM解析方法 291

17.8 解析JSON数据 292

17.8.1 类型转换 292

17.8.2 编码和解码 293

17.9 技术解惑 294

17.9.1 详细剖析客户端/服务器编程模型 294

17.9.2 详细剖析类HTTPConnection中的方法 295

17.10 课后练习 296

第18章 数据库开发 297

18.1 操作SQLite3数据库 298

18.2 操作MySQL数据库 299

18.2.1 搭建PyMySQL环境 300

18.2.2 实现数据库连接 300

18.2.3 创建数据库表 301

18.2.4 数据库插入操作 302

18.2.5 数据库查询操作 302

18.2.6 数据库更新操作 303

18.2.7 数据库删除操作 304

18.2.8 执行事务 304

18.3 使用MariaDB数据库 305

18.3.1 搭建MariaDB数据库环境 305

18.3.2 在Python程序中使用MariaDB数据库 308

18.4 使用MongoDB数据库 309

18.4.1 搭建MongoDB环境 309

18.4.2 在Python程序中使用MongoDB数据库 310

18.5 使用适配器 312

18.6 使用ORM操作数据库 316

18.6.1 Python和ORM 316

18.6.2 使用SQLAlchemy 317

18.6.3 使用mongoengine 319

18.7 技术解惑 321

18.7.1 灵活使用查询运算符 321

18.7.2 掌握between关键字的用法 322

18.7.3 了解关联表操作的秘密 322

18.7.4 请课外学习并掌握SQL语言的知识 322

18.8 课后练习 322

第19章 Python动态Web开发基础 323

19.1 Python CGI编程 324

19.1.1 CGI介绍 324

19.1.2 搭建CGI服务器 324

19.1.3 第一个CGI程序 325

19.2 使用Tornado框架 325

19.2.1 Tornado框架介绍 326

19.2.2 Python和Tornado框架 326

19.2.3 获取请求参数 327

19.2.4 使用cookie 329

19.2.5 URL转向 330

19.2.6 使用静态资源文件 331

19.3 使用Django框架 332

19.3.1 搭建Django环境 332

19.3.2 常用的Django命令 333

19.3.3 第一个Django工程 334

19.3.4 在URL中传递参数 335

19.3.5 使用模板 337

19.3.6 使用表单 341

19.3.7 实现基本的数据库操作 342

19.3.8 使用Django后台系统开发博客系统 343

19.4 使用Flask框架 346

19.4.1 开始使用Flask框架 346

19.4.2 传递URL参数 347

19.4.3 使用session和cookie 349

19.4.4 文件上传 350

19.5 技术解惑 351

19.5.1 “客户端/服务器”开发模式 351

19.5.2 Python Web客户端开发是大势所趋 351

19.5.3 注意Python 3的变化 352

19.6 课后练习 352

第20章 使用Pygame开发游戏 353

20.1 安装Pygame 354

20.2 Pygame开发基础 355

20.2.1 Pygame框架中的模块 355

20.2.2 事件操作 356

20.2.3 显示模式设置 359

20.2.4 字体处理 359

20.2.5 像素和颜色处理 360

20.2.6 使用Surface绘制图像 362

20.2.7 使用pygame.draw绘图函数 362

20.3 开发一个俄罗斯方块游戏 364

20.3.1 规划图形 364

20.3.2 具体实现 365

20.4 技术解惑 371

20.4.1 电脑游戏开发的必备知识 371

20.4.2 如何创建Surface对象 372

20.5 课后练习 372

第21章 使用Pillow库处理图形 373

21.1 安装Pillow库 374

21.2 使用Image模块 374

21.2.1 打开和新建 374

21.2.2 混合 376

21.2.3 复制和缩放 377

21.2.4 粘贴和裁剪 378

21.2.5 格式转换 379

21.2.6 重设和旋转 380

21.2.7 分离和合并 381

21.2.8 滤镜 382

21.2.9 其他内置函数 382

21.3 使用ImageChops模块 384

21.3.1 常用的内置函数 384

21.3.2 实现图片合成 385

21.4 使用ImageEnhance模块 386

21.4.1 常用的内置函数 386

21.4.2 实现图像增强处理 386

21.5 使用ImageFilter模块 387

21.5.1 常用的内置函数 387

21.5.2 实现滤镜处理 388

21.6 使用ImageDraw模块 388

21.6.1 常用的内置函数 388

21.6.2 绘制二维图像 390

21.7 使用ImageFont模块 390

21.8 技术解惑 391

21.8.1 详细剖析ImageFont模块的内置函数 391

21.8.2 必须掌握并深入理解的几个概念 392

21.9 课后练习 392

第22章 使用Matplotlib实现数据挖掘 393

22.1 数据可视化 394

22.2 搭建Matplotlib环境 394

22.3 初级绘图 396

22.3.1 绘制点 396

22.3.2 绘制折线 396

22.3.3 设置标签文字和线条粗细 398

22.4 高级绘图 399

22.4.1 自定义散点图样式 399

22.4.2 绘制柱状图 400

22.4.3 绘制多幅子图 404

22.4.4 绘制曲线 406

22.5 绘制随机漫步图 411

22.5.1 在Python程序中生成随机漫步数据 411

22.5.2 在Python程序中绘制随机漫步图 413

22.6 绘制其他样式的图 414

22.6.1 绘制三维图 414

22.6.2 绘制波浪图 415

22.6.3 绘制散点图 416

22.6.4 绘制等高线图 416

22.6.5 绘制饼状图 417

22.7 技术解惑 418

22.7.1 充分利用官方资源 418

22.7.2 如何实现子图 418

22.8 课后练习 419

第23章 大数据实战——抓取数据并分析 420

23.1 爬虫抓取 421

23.1.1 检测“Redis”的状态 421

23.1.2 账号模拟登录 421

23.1.3 实现具体抓取功能 423

23.2 大数据分析 428