Python语言及其应用(第2版) python编程入门教程自学书籍 语言程序设计编程入门零基础自学 数据分析可视化编程
¥97.40
运费: | ¥ 0.00-20.00 |
商品详情
书名:Python语言及其应用:第2版
定*:*29.8
ISBN:9787**5586223
作者:比尔·卢巴诺维奇
版次:第*版
出版时间:2022-03
内容提要:
本书分为上、下两大*分,共计22章。第**分(第*~**章)由浅入深地介绍Python的基础知识,*括变量、数值、条件语句、文本字符串、循环语句、元组、列表、字典、集合、函数、对象、类、模块、库,等等。掌握这些基础知识将为运用Python奠定牢固的基础。第二*分(第*2~22章)介绍Python的应用,所涉及的*域*括Web应用、数据库、网络和机器学习。你将学会用Python处理时间、进行网络通信、完成数据科学任务等,还会了解并发的相关知识。
作者简介:
比尔·卢巴诺维奇(Bill Lubanovic)在长达40余年的软件开发生涯中积累了丰富的实战经验,开发过的项目跨越数据库、Web、分布式系统等多个*域。他曾负责用Python重新实现流行工具Wayback Machine。
目录:
前言 xxv
第 **分 Python基础
第 * 章 Python初探 3
*.* 谜题 3
*.2 小程序 5
*.3 大程序 7
*.4 现实*中的Python *0
*.5 Python和其他语言 *0
*.6 为什么选择Python *2
*.7 为什么*选择Python *4
*.8 Python 2和Python 3 *4
*.9 安装Python *5
*.*0 运行Python *5
*.*0.* 使用交互式解释器 *5
*.*0.2 使用Python文件 *6
*.*0.3 下*步 *7
*.** 禅意时刻 *7
*.*2 后续内容 *7
*.*3 练习 *8
第 2 章 数据:类型、值、变量和名称 *9
2.* Python数据皆是对象 *9
2.2 类型 20
2.3 可变性 2*
2.4 字面值 22
2.5 变量 22
2.6 赋值 23
2.7 变量是名称,*是位置 24
2.8 向多个名称赋值 27
2.9 为名称重新赋值 27
2.*0 复制 27
2.** 选个好变量名 28
2.*2 后续内容 28
2.*3 练习 28
第 3 章 数字 29
3.* 布尔值 29
3.2 整数 30
3.2.* 字面整数 30
3.2.2 整数运算符 3*
3.2.3 整数和变量 33
3.2.4 *先级 34
3.2.5 基数 35
3.2.6 类型转换 37
3.2.7 int类型有多大 39
3.3 浮点数 40
3.4 数学函数 4*
3.5 后续内容 4*
3.6 练习 4*
第 4 章 if语句 42
4.* 使用#注释 42
4.2 使用\续行 43
4.3 使用if、elif和else进行比较 44
4.4 True是什么 46
4.5 使用in进行多重比较 47
4.6 新秀:我是海象 48
4.7 后续内容 49
4.8 练习 49
第 5 章 字符串 50
5.* 使用引号*建字符串 50
5.2 使用str()*建字符串 52
5.3 使用\转义 53
5.4 使用+拼接 54
5.5 使用*重复 55
5.6 使用[]获取字符 55
5.7 使用分片提取子串 56
5.8 使用len()获取字符串长度 58
5.9 使用split()分割字符串 58
5.*0 使用join()合并字符串 59
5.** 使用replace()进行替换 59
5.*2 使用strip()进行剥离 59
5.*3 搜索和选择 60
5.*4 大小写 62
5.*5 对齐 63
5.*6 格式化 63
5.*6.* 旧式样:% 63
5.*6.2 新式样:{}和format() 66
5.*6.3 最新式样:f字符串 67
5.*7 未完待续 68
5.*8 后续内容 68
5.*9 练习 68
第 6 章 while循环和for循环 70
6.* while循环 70
6.*.* 使用break跳出循环 7*
6.*.2 使用continue跳过本次循环 7*
6.*.3 使用else检查break 7*
6.2 使用for和in进行迭代 72
6.2.* 使用break跳出循环 73
6.2.2 使用continue跳过本次循环 73
6.2.3 使用else检查break 73
6.2.4 使用range()生成数字序列 74
6.3 其他迭代器 74
6.4 后续内容 74
6.5 练习 74
第 7 章 元组和列表 76
7.* 元组 76
7.*.* 使用逗号和()*建元组 77
7.*.2 使用tuple()*建元组 78
7.*.3 使用+拼接元组 78
7.*.4 使用*复制元素 78
7.*.5 比较元组 78
7.*.6 使用for和in迭代元组 79
7.*.7 修改元组 79
7.2 列表 80
7.2.* 使用[]*建列表 80
7.2.2 使用list()*建或转换列表 80
7.2.3 使用split()从字符串*建列表 80
7.2.4 使用[offset]获取列表项 8*
7.2.5 使用切片获取列表项 82
7.2.6 使用append()在末尾添加列表项 82
7.2.7 使用insert()按偏移插入列表项 83
7.2.8 使用*复制所有列表项 83
7.2.9 使用extend()或+拼接列表 83
7.2.*0 使用[offset]修改列表项 84
7.2.** 使用切片修改列表项 84
7.2.*2 使用del按偏移删除列表项 85
7.2.*3 使用remove()按值删除列表项 85
7.2.*4 使用pop()按偏移获取列表项并删除 85
7.2.*5 使用clear()删除所有列表项 86
7.2.*6 使用index()按值查找列表项的偏移 86
7.2.*7 使用in测试值 86
7.2.*8 使用count()统计某个值出现的次数 87
7.2.*9 使用join()将列表转换为字符串 87
7.2.20 使用sort()或sorted()重新排序列表项 87
7.2.2* 使用len()获得列表长度 88
7.2.22 使用=赋值 88
7.2.23 使用copy()、list()或切片复制列表 89
7.2.24 使用deepcopy()复制所有内容 89
7.2.25 比较列表 90
7.2.26 使用for和in迭代列表 9*
7.2.27 使用zip()迭代多个序列 92
7.2.28 使用推导式*建列表 92
7.2.29 列表的列表 95
7.3 元组和列表 95
7.4 *存在元组推导式 95
7.5 后续内容 96
7.6 练习 96
第 8 章 字典和集合 98
8.* 字典 98
8.*.* 使用{}*建字典 98
8.*.2 使用dict()*建字典 99
8.*.3 使用dict()进行转换 99
8.*.4 使用[key]添加或修改字典项 *00
8.*.5 使用[key]或get()获取字典项 *0*
8.*.6 使用keys()获取所有的键 *02
8.*.7 使用values()获取所有值 *02
8.*.8 使用items()获取所有“键–值”对 *02
8.*.9 使用len()获取长度 *03
8.*.*0 使用{**a, **b}合并字典 *03
8.*.** 使用update()合并字典 *03
8.*.*2 使用del按键删除字典项 *04
8.*.*3 使用pop()按键获取字典项并将其删除 *04
8.*.*4 使用clear()删除所有字典项 *05
8.*.*5 使用in测试键是否存在 *05
8.*.*6 使用=赋值 *05
8.*.*7 使用copy()复制 *05
8.*.*8 使用deepcopy()复制所有内容 *06
8.*.*9 比较字典 *07
8.*.20 使用for和in迭代字典 *07
8.*.2* 字典推导式 *08
8.2 集合 *09
8.2.* 使用set()*建集合 **0
8.2.2 使用set()进行转换 **0
8.2.3 使用len()获取集合元素个数 ***
8.2.4 使用add()添加元素 ***
8.2.5 使用remove()删除元素 ***
8.2.6 使用for和in迭代集合 ***
8.2.7 使用in测试元素 ***
8.2.8 集合运算 **2
8.2.9 集合推导式 **5
8.2.*0 使用frozenset()*建*可变集合 **5
8.3 目前为止学过的数据结构 **6
8.4 *建更复杂的数据结构 **6
8.5 后续内容 **7
8.6 练习 **7
第 9 章 函数 **9
9.* 使用def定义函数 **9
9.2 使用圆括号调用函数 *20
9.3 实参与形参 *20
9.3.* 有用的None *22
9.3.2 位置实参 *23
9.3.3 关键字实参 *23
9.3.4 *默认形参值 *24
9.3.5 使用*拆分/汇集位置实参 *25
9.3.6 使用**拆分/汇集关键字实参 *26
9.3.7 *关键字形参 *27
9.3.8 可变实参和*可变实参 *28
9.4 文档字符串 *28
9.5 作为“头等公民”的函数 *29
9.6 内*函数 *3*
9.7 匿名函数:lambda *32
9.8 生成器 *33
9.8.* 生成器函数 *34
9.8.2 生成器推导式 *34
9.9 装饰器 *35
9.*0 名称空间和作用域 *37
9.** 名称中_和__的用法 *39
9.*2 递归 *39
9.*3 异步函数 *40
9.*4 异常 *40
9.*4.* 使用try和except处理错误 *4*
9.*4.2 编写自己的异常 *42
9.*5 后续内容 *43
9.*6 练习 *43
第 *0 章 对象和类 *44
*0.* 什么是对象 *44
*0.2 简单对象 *45
*0.2.* 使用class定义类 *45
*0.2.2 *性 *45
*0.2.3 方法 *46
*0.2.4 初始化 *47
*0.3 继承 *48
*0.3.* 从父类继承 *48
*0.3.2 覆盖方法 *49
*0.3.3 添加方法 *50
*0.3.4 使用super()获得父类的帮助 *5*
*0.3.5 多重继承 *52
*0.3.6 mixin *53
*0.4 为self正名 *54
*0.5 *性访问 *54
*0.5.* 直接访问 *54
*0.5.2 getter和setter *55
*0.5.3 用于*性访问的属性 *55
*0.5.4 计算值属性 *57
*0.5.5 使用名称重整*护内*隐私 *58
*0.5.6 类和对象*性 *58
*0.6 方法的类型 *59
*0.6.* 实例方法 *59
*0.6.2 类方法 *59
*0.6.3 静态方法 *60
*0.7 鸭子类型 *60
*0.8 魔术方法 *62
*0.9 聚合和组合 *65
*0.*0 何时使用对象或其他东西 *66
*0.** 具名元组 *66
*0.*2 数据类 *68
*0.*3 attrs *69
*0.*4 后续内容 *69
*0.*5 练习 *69
第 ** 章 模块、*和赠品 *70
**.* 模块和import语句 *70
**.*.* 导入模块 *70
**.*.2 使用别名导入模块 *72
**.*.3 导入*分模块 *72
**.2 * *72
**.2.* 模块搜索路径 *74
**.2.2 相对导入和*对导入 *74
**.2.3 名称空间* *75
**.2.4 模块和对象 *76
**.3 Python标准库 *76
**.3.* 使用setdefault()和defaultdict()处理缺失的键 *77
**.3.2 使用Counter()计数 *78
**.3.3 使用OrderedDict()按键排序 *79
**.3.4 栈+队列=双端队列 *80
**.3.5 使用itertools迭代代码结构 *8*
**.3.6 使用pprint()美化输出 *82
**.3.7 获得随机数 *82
**.4 获取其他Python代码 *84
**.5 后续内容 *84
**.6 练习 *84
第二*分 Python实践
第 *2 章 数据处理 *87
*2.* 文本字符串:Unicode *88
*2.*.* Python 3 Unicode字符串 *88
*2.*.2 UTF-8 *9*
*2.*.3 编码 *9*
*2.*.4 解码 *92
*2.*.5 HTML实体 *94
*2.*.6 归*化 *95
*2.*.7 更多信息 *96
*2.2 字符串:正则表达式 *96
*2.2.* 使用match()查找起始匹配 *97
*2.2.2 使用search()查找*次匹配 *98
*2.2.3 使用findall()查找所有匹配 *98
*2.2.4 使用split()在匹配处分割 *99
*2.2.5 使用sub()替换匹配 *99
*2.2.6 模式:*殊字符 *99
*2.2.7 模式:使用修饰符 20*
*2.2.8 模式:*match()的输出 203
*2.3 二进制数据 203
*2.3.* bytes和bytearray 204
*2.3.2 使用struct转换二进制数据 205
*2.3.3 其他二进制数据工具 207
*2.3.4 使用binascii()转换二进制/字符串 208
*2.3.5 位运算符 208
*2.4 珠宝类比 209
*2.5 后续内容 209
*2.6 练习 209
第 *3 章 日历和时钟 2**
*3.* 闰年 2*2
*3.2 datetime模块 2*2
*3.3 使用time模块 2*5
*3.4 读写日期和时间 2*6
*3.5 所有的转换 220
*3.6 替代模块 220
*3.7 后续内容 22*
*3.8 练习 22*
第 *4 章 文件和目录 222
*4.* 文件输入和输出 222
*4.*.* 使用open()*建或打开文件 222
*4.*.2 使用print()写入文本文件 223
*4.*.3 使用write()写入文本文件 223
*4.*.4 使用read()、readline()或readlines()读取文本文件 225
*4.*.5 使用write()写入二进制文件 226
*4.*.6 使用read()读取二进制文件 227
*4.*.7 使用with自动关闭文件 227
*4.*.8 使用seek()改变文件位置 228
*4.2 内存映射 229
*4.3 文件操作 229
*4.3.* 使用exists()检查文件是否存在 230
*4.3.2 使用isfile()检查文件类型 230
*4.3.3 使用copy()复制文件 23*
*4.3.4 使用rename()重命名 23*
*4.3.5 使用link()或symlink()*建* 23*
*4.3.6 使用chmod()改变文件权限 23*
*4.3.7 使用chown()改变文件所属权 232
*4.3.8 使用remove()删除文件 232
*4.4 目录操作 232
*4.4.* 使用mkdir()*建目录 232
*4.4.2 使用rmdir()删除目录 232
*4.4.3 使用listdir()列出目录内容 232
*4.4.4 使用chdir()改变当前目录 233
*4.4.5 使用glob()列出匹配文件 233
*4.5 路径名 234
*4.5.* 使用abspath()获取路径名 235
*4.5.2 使用realpath()获取符号*路径名 235
*4.5.3 使用os.path.join()构建路径名 235
*4.5.4 使用pathlib 235
*4.6 BytesIO和StringIO 236
*4.7 后续内容 237
*4.8 练习 237
第 *5 章 进程和并发 238
*5.* 程序和进程 238
*5.*.* 使用subprocess*建进程 239
*5.*.2 使用multiprocessing*建进程 240
*5.*.3 使用terminate()*止进程 24*
*5.*.4 使用os获得系统信息 24*
*5.*.5 使用psutil获取进程信息 242
*5.2 命令自动化 242
*5.2.* invoke 243
*5.2.2 其他命令助手 243
*5.3 并发 244
*5.3.* 队列 245
*5.3.2 进程 245
*5.3.3 线程 246
*5.3.4 concurrent.futures 248
*5.3.5 绿色线程和gevent 25*
*5.3.6 twisted 252
*5.3.7 asyncio 254
*5.3.8 Redis 254
*5.3.9 队列之外的选择 257
*5.4 后续内容 257
*5.5 练习 257
第 *6 章 持久性存储 258
*6.* 平面文本文件 258
*6.2 填充式文本文件 258
*6.3 表格式文本文件 259
*6.3.* CSV 259
*6.3.2 XML 26*
*6.3.3 XML*提示 263
*6.3.4 HTML 263
*6.3.5 JSON 264
*6.3.6 YAML 266
*6.3.7 tablib 267
*6.3.8 Pandas 267
*6.3.9 配置文件 268
*6.4 二进制文件 269
*6.4.* 填充式二进制文件和内存映射 269
*6.4.2 电子表格 270
*6.4.3 HDF5 270
*6.4.4 TileDB 270
*6.5 关系数据库 270
*6.5.* SQL 27*
*6.5.2 DB-API 272
*6.5.3 SQLite 273
*6.5.4 MySQL 274
*6.5.5 PostgreSQL 275
*6.5.6 SQLAlchemy 275
*6.5.7 其他数据库访问* 280
*6.6 NoSQL数据存储 280
*6.6.* dbm家族 280
*6.6.2 memcached 28*
*6.6.3 Redis 282
*6.6.4 文档数据库 288
*6.6.5 时间序列数据库 289
*6.6.6 图数据库 289
*6.6.7 其他NoSQL 289
*6.7 *文数据库 290
*6.8 后续内容 290
*6.9 练习 290
第 *7 章 网络 292
*7.* TCP/IP 292
*7.*.* 套接字 293
*7.*.2 Scapy 297
*7.*.3 Netcat 297
*7.2 联网模式 297
*7.3 “请求–回应”模式 298
*7.3.* ZeroMQ 298
*7.3.2 其他消息工具 30*
*7.4 “发布–订阅”模式 302
*7.4.* Redis 302
*7.4.2 ZeroMQ 303
*7.4.3 其他“发布–订阅”工具 305
*7.5 互联网服务 305
*7.5.* 域名系统 305
*7.5.2 Python电子邮件模块 306
*7.5.3 其他协议 306
*7.6 Web服务和API 306
*7.7 数据序列化 307
*7.7.* 使用pickle进行序列化 307
*7.7.2 其他序列化格式 308
*7.8 远程过程调用 309
*7.8.* XML-RPC 309
*7.8.2 JSON-RPC 3*0
*7.8.3 MessagePack-RPC 3**
*7.8.4 zerorpc 3*2
*7.8.5 gRPC 3*2
*7.8.6 twirp 3*3
*7.9 远程管理工具 3*3
*7.*0 大数据 3*3
*7.*0.* Hadoop 3*4
*7.*0.2 Spark 3*4
*7.*0.3 Disco 3*4
*7.*0.4 Dask 3*4
*7.** 云 3*5
*7.**.* Amazon Web服务 3*6
*7.**.2 Google Cloud 3*6
*7.**.3 Microsoft Azure 3*6
*7.**.4 OpenStack 3*6
*7.*2 Docker 3*6
*7.*3 后续内容 3*7
*7.*4 练习 3*7
第 *8 章 Web 3*8
*8.* Web客户端 3*9
*8.*.* 使用telnet进行测试 320
*8.*.2 使用curl进行测试 32*
*8.*.3 使用httpie进行测试 322
*8.*.4 使用httpbin进行测试 322
*8.*.5 Python的标准Web库 322
*8.*.6 标准库之外的requests 324
*8.2 Web服务器 325
*8.2.* 最简单的Python Web服务器 326
*8.2.2 Web服务器网关接口(WSGI) 327
*8.2.3 ASGI 327
*8.2.4 Apache 328
*8.2.5 NGINX 329
*8.2.6 其他Python Web服务器 329
*8.3 Web服务器框架 330
*8.3.* Bottle 330
*8.3.2 Flask 332
*8.3.3 Django 336
*8.3.4 其他框架 336
*8.4 数据库框架 337
*8.5 Web服务和自动化 337
*8.5.* webbrowser 337
*8.5.2 webview 338
*8.6 Web API和REST 339
*8.7 爬取数据 339
*8.7.* Scrapy 340
*8.7.2 BeautifulSoup 340
*8.7.3 requests-html 34*
*8.8 看场电影吧 34*
*8.9 后续内容 344
*8.*0 练习 344
第 *9 章 成为Python主义者 345
*9.* 关于编程 345
*9.2 寻找Python代码 346
*9.3 安装Python* 346
*9.3.* 使用pip 346
*9.3.2 使用virtualenv 347
*9.3.3 使用pipenv 347
*9.3.4 使用*管理器 348
*9.3.5 从源代码安装 348
*9.4 集成化开发环境 348
*9.4.* IDLE 348
*9.4.2 PyCharm 348
*9.4.3 IPython 349
*9.4.4 Jupyter Notebook 350
*9.4.5 JupyterLab 35*
*9.5 名称和文档 35*
*9.6 添加类型提示 352
*9.7 测试 353
*9.7.* 使用pylint、pyflakes 和pep8检查代码 353
*9.7.2 使用unittest进行测试 355
*9.7.3 使用doctest进行测试 358
*9.7.4 使用nose进行测试 359
*9.7.5 其他测试框架 360
*9.7.6 持续集成 360
*9.8 调试Python代码 36*
*9.8.* 使用print() 36*
*9.8.2 使用装饰器 362
*9.8.3 使用pdb 363
*9.8.4 使用breakpoint() 368
*9.9 记录错误消息 368
*9.*0 *化 370
*9.*0.* 测量时间 370
*9.*0.2 算法和数据结构 373
*9.*0.3 Cython、NumPy和C扩展 374
*9.*0.4 PyPy 374
*9.*0.5 Numba 374
*9.** 源代码控制 375
*9.**.* Mercurial 375
*9.**.2 Git 376
*9.*2 分发你的程序 378
*9.*3 克隆本书 378
*9.*4 更多内容 378
*9.*4.* 图书 379
*9.*4.2 网站 379
*9.*4.3 团体 380
*9.*4.4 会议 380
*9.*4.5 Python相关的工作机会 380
*9.*5 后续内容 380
*9.*6 练习 38*
第 20 章 Python的艺术 382
20.* 2D图形 382
20.*.* 标准库 382
20.*.2 PIL和Pillow 383
20.*.3 ImageMagick 386
20.2 3D图形 387
20.3 3D动画 387
20.4 图形用户界面 388
20.5 绘图、图形和可视化 389
20.5.* Matplotlib 389
20.5.2 Seaborn 39*
20.5.3 Bokeh 393
20.6 游戏 393
20.7 音频和音乐 393
20.8 后续内容 394
20.9 练习 394
第 2* 章 工作中的Python 395
2*.* Microsoft Office套件 395
2*.2 执行企业任务 396
2*.3 处理企业数据 397
2*.3.* 提取、转换和装载 397
2*.3.2 数据验证 400
2*.3.3 其他信息源 400
2*.4 开源Python企业* 400
2*.5 金融中的Python 40*
2*.6 商业数据* 40*
2*.7 地图 402
2*.7.* 格式 402
2*.7.2 根据shapefile绘制地图 403
2*.7.3 Geopandas 405
2*.7.4 其他绘图* 405
2*.7.5 应用和数据 406
2*.8 后续内容 406
2*.9 练习 406
第 22 章 Python的科学 407
22.* 标准库中的数学和统计 407
22.*.* 数学函数 407
22.*.2 处理复数 409
22.*.3 使用decimal*确计算浮点数 4*0
22.*.4 使用fractions执行有理数运算 4*0
22.*.5 使用array*建压缩序列 4**
22.*.6 使用statistics进行简单的统计 4**
2*.*.7 矩阵乘法 4**
22.2 科学Python 4**
22.3 NumPy 4*2
22.3.* 使用array()*建数组 4*2
22.3.2 使用arange()*建数组 4*3
22.3.3 使用zeros()、ones()和random()*建数组 4*3
22.3.4 使用reshape()改变数组的形状 4*4
22.3.5 使用[]获取元素 4*5
22.3.6 数组的算术运算 4*6
22.3.7 线性代数 4*7
22.4 SciPy 4*8
22.5 SciKit 4*8
22.6 Pandas 4*8
22.7 Python和各个科学*域 4*9
22.8 后续内容 420
22.9 练习 420
附录A 写给初级程序员的计算机软硬件知识 42*
附录B 安装Python 3 430
附录C 截然*同的async 437
附录D 习题答案 442
附录E 速查表 483
定*:*29.8
ISBN:9787**5586223
作者:比尔·卢巴诺维奇
版次:第*版
出版时间:2022-03
内容提要:
本书分为上、下两大*分,共计22章。第**分(第*~**章)由浅入深地介绍Python的基础知识,*括变量、数值、条件语句、文本字符串、循环语句、元组、列表、字典、集合、函数、对象、类、模块、库,等等。掌握这些基础知识将为运用Python奠定牢固的基础。第二*分(第*2~22章)介绍Python的应用,所涉及的*域*括Web应用、数据库、网络和机器学习。你将学会用Python处理时间、进行网络通信、完成数据科学任务等,还会了解并发的相关知识。
作者简介:
比尔·卢巴诺维奇(Bill Lubanovic)在长达40余年的软件开发生涯中积累了丰富的实战经验,开发过的项目跨越数据库、Web、分布式系统等多个*域。他曾负责用Python重新实现流行工具Wayback Machine。
目录:
前言 xxv
第 **分 Python基础
第 * 章 Python初探 3
*.* 谜题 3
*.2 小程序 5
*.3 大程序 7
*.4 现实*中的Python *0
*.5 Python和其他语言 *0
*.6 为什么选择Python *2
*.7 为什么*选择Python *4
*.8 Python 2和Python 3 *4
*.9 安装Python *5
*.*0 运行Python *5
*.*0.* 使用交互式解释器 *5
*.*0.2 使用Python文件 *6
*.*0.3 下*步 *7
*.** 禅意时刻 *7
*.*2 后续内容 *7
*.*3 练习 *8
第 2 章 数据:类型、值、变量和名称 *9
2.* Python数据皆是对象 *9
2.2 类型 20
2.3 可变性 2*
2.4 字面值 22
2.5 变量 22
2.6 赋值 23
2.7 变量是名称,*是位置 24
2.8 向多个名称赋值 27
2.9 为名称重新赋值 27
2.*0 复制 27
2.** 选个好变量名 28
2.*2 后续内容 28
2.*3 练习 28
第 3 章 数字 29
3.* 布尔值 29
3.2 整数 30
3.2.* 字面整数 30
3.2.2 整数运算符 3*
3.2.3 整数和变量 33
3.2.4 *先级 34
3.2.5 基数 35
3.2.6 类型转换 37
3.2.7 int类型有多大 39
3.3 浮点数 40
3.4 数学函数 4*
3.5 后续内容 4*
3.6 练习 4*
第 4 章 if语句 42
4.* 使用#注释 42
4.2 使用\续行 43
4.3 使用if、elif和else进行比较 44
4.4 True是什么 46
4.5 使用in进行多重比较 47
4.6 新秀:我是海象 48
4.7 后续内容 49
4.8 练习 49
第 5 章 字符串 50
5.* 使用引号*建字符串 50
5.2 使用str()*建字符串 52
5.3 使用\转义 53
5.4 使用+拼接 54
5.5 使用*重复 55
5.6 使用[]获取字符 55
5.7 使用分片提取子串 56
5.8 使用len()获取字符串长度 58
5.9 使用split()分割字符串 58
5.*0 使用join()合并字符串 59
5.** 使用replace()进行替换 59
5.*2 使用strip()进行剥离 59
5.*3 搜索和选择 60
5.*4 大小写 62
5.*5 对齐 63
5.*6 格式化 63
5.*6.* 旧式样:% 63
5.*6.2 新式样:{}和format() 66
5.*6.3 最新式样:f字符串 67
5.*7 未完待续 68
5.*8 后续内容 68
5.*9 练习 68
第 6 章 while循环和for循环 70
6.* while循环 70
6.*.* 使用break跳出循环 7*
6.*.2 使用continue跳过本次循环 7*
6.*.3 使用else检查break 7*
6.2 使用for和in进行迭代 72
6.2.* 使用break跳出循环 73
6.2.2 使用continue跳过本次循环 73
6.2.3 使用else检查break 73
6.2.4 使用range()生成数字序列 74
6.3 其他迭代器 74
6.4 后续内容 74
6.5 练习 74
第 7 章 元组和列表 76
7.* 元组 76
7.*.* 使用逗号和()*建元组 77
7.*.2 使用tuple()*建元组 78
7.*.3 使用+拼接元组 78
7.*.4 使用*复制元素 78
7.*.5 比较元组 78
7.*.6 使用for和in迭代元组 79
7.*.7 修改元组 79
7.2 列表 80
7.2.* 使用[]*建列表 80
7.2.2 使用list()*建或转换列表 80
7.2.3 使用split()从字符串*建列表 80
7.2.4 使用[offset]获取列表项 8*
7.2.5 使用切片获取列表项 82
7.2.6 使用append()在末尾添加列表项 82
7.2.7 使用insert()按偏移插入列表项 83
7.2.8 使用*复制所有列表项 83
7.2.9 使用extend()或+拼接列表 83
7.2.*0 使用[offset]修改列表项 84
7.2.** 使用切片修改列表项 84
7.2.*2 使用del按偏移删除列表项 85
7.2.*3 使用remove()按值删除列表项 85
7.2.*4 使用pop()按偏移获取列表项并删除 85
7.2.*5 使用clear()删除所有列表项 86
7.2.*6 使用index()按值查找列表项的偏移 86
7.2.*7 使用in测试值 86
7.2.*8 使用count()统计某个值出现的次数 87
7.2.*9 使用join()将列表转换为字符串 87
7.2.20 使用sort()或sorted()重新排序列表项 87
7.2.2* 使用len()获得列表长度 88
7.2.22 使用=赋值 88
7.2.23 使用copy()、list()或切片复制列表 89
7.2.24 使用deepcopy()复制所有内容 89
7.2.25 比较列表 90
7.2.26 使用for和in迭代列表 9*
7.2.27 使用zip()迭代多个序列 92
7.2.28 使用推导式*建列表 92
7.2.29 列表的列表 95
7.3 元组和列表 95
7.4 *存在元组推导式 95
7.5 后续内容 96
7.6 练习 96
第 8 章 字典和集合 98
8.* 字典 98
8.*.* 使用{}*建字典 98
8.*.2 使用dict()*建字典 99
8.*.3 使用dict()进行转换 99
8.*.4 使用[key]添加或修改字典项 *00
8.*.5 使用[key]或get()获取字典项 *0*
8.*.6 使用keys()获取所有的键 *02
8.*.7 使用values()获取所有值 *02
8.*.8 使用items()获取所有“键–值”对 *02
8.*.9 使用len()获取长度 *03
8.*.*0 使用{**a, **b}合并字典 *03
8.*.** 使用update()合并字典 *03
8.*.*2 使用del按键删除字典项 *04
8.*.*3 使用pop()按键获取字典项并将其删除 *04
8.*.*4 使用clear()删除所有字典项 *05
8.*.*5 使用in测试键是否存在 *05
8.*.*6 使用=赋值 *05
8.*.*7 使用copy()复制 *05
8.*.*8 使用deepcopy()复制所有内容 *06
8.*.*9 比较字典 *07
8.*.20 使用for和in迭代字典 *07
8.*.2* 字典推导式 *08
8.2 集合 *09
8.2.* 使用set()*建集合 **0
8.2.2 使用set()进行转换 **0
8.2.3 使用len()获取集合元素个数 ***
8.2.4 使用add()添加元素 ***
8.2.5 使用remove()删除元素 ***
8.2.6 使用for和in迭代集合 ***
8.2.7 使用in测试元素 ***
8.2.8 集合运算 **2
8.2.9 集合推导式 **5
8.2.*0 使用frozenset()*建*可变集合 **5
8.3 目前为止学过的数据结构 **6
8.4 *建更复杂的数据结构 **6
8.5 后续内容 **7
8.6 练习 **7
第 9 章 函数 **9
9.* 使用def定义函数 **9
9.2 使用圆括号调用函数 *20
9.3 实参与形参 *20
9.3.* 有用的None *22
9.3.2 位置实参 *23
9.3.3 关键字实参 *23
9.3.4 *默认形参值 *24
9.3.5 使用*拆分/汇集位置实参 *25
9.3.6 使用**拆分/汇集关键字实参 *26
9.3.7 *关键字形参 *27
9.3.8 可变实参和*可变实参 *28
9.4 文档字符串 *28
9.5 作为“头等公民”的函数 *29
9.6 内*函数 *3*
9.7 匿名函数:lambda *32
9.8 生成器 *33
9.8.* 生成器函数 *34
9.8.2 生成器推导式 *34
9.9 装饰器 *35
9.*0 名称空间和作用域 *37
9.** 名称中_和__的用法 *39
9.*2 递归 *39
9.*3 异步函数 *40
9.*4 异常 *40
9.*4.* 使用try和except处理错误 *4*
9.*4.2 编写自己的异常 *42
9.*5 后续内容 *43
9.*6 练习 *43
第 *0 章 对象和类 *44
*0.* 什么是对象 *44
*0.2 简单对象 *45
*0.2.* 使用class定义类 *45
*0.2.2 *性 *45
*0.2.3 方法 *46
*0.2.4 初始化 *47
*0.3 继承 *48
*0.3.* 从父类继承 *48
*0.3.2 覆盖方法 *49
*0.3.3 添加方法 *50
*0.3.4 使用super()获得父类的帮助 *5*
*0.3.5 多重继承 *52
*0.3.6 mixin *53
*0.4 为self正名 *54
*0.5 *性访问 *54
*0.5.* 直接访问 *54
*0.5.2 getter和setter *55
*0.5.3 用于*性访问的属性 *55
*0.5.4 计算值属性 *57
*0.5.5 使用名称重整*护内*隐私 *58
*0.5.6 类和对象*性 *58
*0.6 方法的类型 *59
*0.6.* 实例方法 *59
*0.6.2 类方法 *59
*0.6.3 静态方法 *60
*0.7 鸭子类型 *60
*0.8 魔术方法 *62
*0.9 聚合和组合 *65
*0.*0 何时使用对象或其他东西 *66
*0.** 具名元组 *66
*0.*2 数据类 *68
*0.*3 attrs *69
*0.*4 后续内容 *69
*0.*5 练习 *69
第 ** 章 模块、*和赠品 *70
**.* 模块和import语句 *70
**.*.* 导入模块 *70
**.*.2 使用别名导入模块 *72
**.*.3 导入*分模块 *72
**.2 * *72
**.2.* 模块搜索路径 *74
**.2.2 相对导入和*对导入 *74
**.2.3 名称空间* *75
**.2.4 模块和对象 *76
**.3 Python标准库 *76
**.3.* 使用setdefault()和defaultdict()处理缺失的键 *77
**.3.2 使用Counter()计数 *78
**.3.3 使用OrderedDict()按键排序 *79
**.3.4 栈+队列=双端队列 *80
**.3.5 使用itertools迭代代码结构 *8*
**.3.6 使用pprint()美化输出 *82
**.3.7 获得随机数 *82
**.4 获取其他Python代码 *84
**.5 后续内容 *84
**.6 练习 *84
第二*分 Python实践
第 *2 章 数据处理 *87
*2.* 文本字符串:Unicode *88
*2.*.* Python 3 Unicode字符串 *88
*2.*.2 UTF-8 *9*
*2.*.3 编码 *9*
*2.*.4 解码 *92
*2.*.5 HTML实体 *94
*2.*.6 归*化 *95
*2.*.7 更多信息 *96
*2.2 字符串:正则表达式 *96
*2.2.* 使用match()查找起始匹配 *97
*2.2.2 使用search()查找*次匹配 *98
*2.2.3 使用findall()查找所有匹配 *98
*2.2.4 使用split()在匹配处分割 *99
*2.2.5 使用sub()替换匹配 *99
*2.2.6 模式:*殊字符 *99
*2.2.7 模式:使用修饰符 20*
*2.2.8 模式:*match()的输出 203
*2.3 二进制数据 203
*2.3.* bytes和bytearray 204
*2.3.2 使用struct转换二进制数据 205
*2.3.3 其他二进制数据工具 207
*2.3.4 使用binascii()转换二进制/字符串 208
*2.3.5 位运算符 208
*2.4 珠宝类比 209
*2.5 后续内容 209
*2.6 练习 209
第 *3 章 日历和时钟 2**
*3.* 闰年 2*2
*3.2 datetime模块 2*2
*3.3 使用time模块 2*5
*3.4 读写日期和时间 2*6
*3.5 所有的转换 220
*3.6 替代模块 220
*3.7 后续内容 22*
*3.8 练习 22*
第 *4 章 文件和目录 222
*4.* 文件输入和输出 222
*4.*.* 使用open()*建或打开文件 222
*4.*.2 使用print()写入文本文件 223
*4.*.3 使用write()写入文本文件 223
*4.*.4 使用read()、readline()或readlines()读取文本文件 225
*4.*.5 使用write()写入二进制文件 226
*4.*.6 使用read()读取二进制文件 227
*4.*.7 使用with自动关闭文件 227
*4.*.8 使用seek()改变文件位置 228
*4.2 内存映射 229
*4.3 文件操作 229
*4.3.* 使用exists()检查文件是否存在 230
*4.3.2 使用isfile()检查文件类型 230
*4.3.3 使用copy()复制文件 23*
*4.3.4 使用rename()重命名 23*
*4.3.5 使用link()或symlink()*建* 23*
*4.3.6 使用chmod()改变文件权限 23*
*4.3.7 使用chown()改变文件所属权 232
*4.3.8 使用remove()删除文件 232
*4.4 目录操作 232
*4.4.* 使用mkdir()*建目录 232
*4.4.2 使用rmdir()删除目录 232
*4.4.3 使用listdir()列出目录内容 232
*4.4.4 使用chdir()改变当前目录 233
*4.4.5 使用glob()列出匹配文件 233
*4.5 路径名 234
*4.5.* 使用abspath()获取路径名 235
*4.5.2 使用realpath()获取符号*路径名 235
*4.5.3 使用os.path.join()构建路径名 235
*4.5.4 使用pathlib 235
*4.6 BytesIO和StringIO 236
*4.7 后续内容 237
*4.8 练习 237
第 *5 章 进程和并发 238
*5.* 程序和进程 238
*5.*.* 使用subprocess*建进程 239
*5.*.2 使用multiprocessing*建进程 240
*5.*.3 使用terminate()*止进程 24*
*5.*.4 使用os获得系统信息 24*
*5.*.5 使用psutil获取进程信息 242
*5.2 命令自动化 242
*5.2.* invoke 243
*5.2.2 其他命令助手 243
*5.3 并发 244
*5.3.* 队列 245
*5.3.2 进程 245
*5.3.3 线程 246
*5.3.4 concurrent.futures 248
*5.3.5 绿色线程和gevent 25*
*5.3.6 twisted 252
*5.3.7 asyncio 254
*5.3.8 Redis 254
*5.3.9 队列之外的选择 257
*5.4 后续内容 257
*5.5 练习 257
第 *6 章 持久性存储 258
*6.* 平面文本文件 258
*6.2 填充式文本文件 258
*6.3 表格式文本文件 259
*6.3.* CSV 259
*6.3.2 XML 26*
*6.3.3 XML*提示 263
*6.3.4 HTML 263
*6.3.5 JSON 264
*6.3.6 YAML 266
*6.3.7 tablib 267
*6.3.8 Pandas 267
*6.3.9 配置文件 268
*6.4 二进制文件 269
*6.4.* 填充式二进制文件和内存映射 269
*6.4.2 电子表格 270
*6.4.3 HDF5 270
*6.4.4 TileDB 270
*6.5 关系数据库 270
*6.5.* SQL 27*
*6.5.2 DB-API 272
*6.5.3 SQLite 273
*6.5.4 MySQL 274
*6.5.5 PostgreSQL 275
*6.5.6 SQLAlchemy 275
*6.5.7 其他数据库访问* 280
*6.6 NoSQL数据存储 280
*6.6.* dbm家族 280
*6.6.2 memcached 28*
*6.6.3 Redis 282
*6.6.4 文档数据库 288
*6.6.5 时间序列数据库 289
*6.6.6 图数据库 289
*6.6.7 其他NoSQL 289
*6.7 *文数据库 290
*6.8 后续内容 290
*6.9 练习 290
第 *7 章 网络 292
*7.* TCP/IP 292
*7.*.* 套接字 293
*7.*.2 Scapy 297
*7.*.3 Netcat 297
*7.2 联网模式 297
*7.3 “请求–回应”模式 298
*7.3.* ZeroMQ 298
*7.3.2 其他消息工具 30*
*7.4 “发布–订阅”模式 302
*7.4.* Redis 302
*7.4.2 ZeroMQ 303
*7.4.3 其他“发布–订阅”工具 305
*7.5 互联网服务 305
*7.5.* 域名系统 305
*7.5.2 Python电子邮件模块 306
*7.5.3 其他协议 306
*7.6 Web服务和API 306
*7.7 数据序列化 307
*7.7.* 使用pickle进行序列化 307
*7.7.2 其他序列化格式 308
*7.8 远程过程调用 309
*7.8.* XML-RPC 309
*7.8.2 JSON-RPC 3*0
*7.8.3 MessagePack-RPC 3**
*7.8.4 zerorpc 3*2
*7.8.5 gRPC 3*2
*7.8.6 twirp 3*3
*7.9 远程管理工具 3*3
*7.*0 大数据 3*3
*7.*0.* Hadoop 3*4
*7.*0.2 Spark 3*4
*7.*0.3 Disco 3*4
*7.*0.4 Dask 3*4
*7.** 云 3*5
*7.**.* Amazon Web服务 3*6
*7.**.2 Google Cloud 3*6
*7.**.3 Microsoft Azure 3*6
*7.**.4 OpenStack 3*6
*7.*2 Docker 3*6
*7.*3 后续内容 3*7
*7.*4 练习 3*7
第 *8 章 Web 3*8
*8.* Web客户端 3*9
*8.*.* 使用telnet进行测试 320
*8.*.2 使用curl进行测试 32*
*8.*.3 使用httpie进行测试 322
*8.*.4 使用httpbin进行测试 322
*8.*.5 Python的标准Web库 322
*8.*.6 标准库之外的requests 324
*8.2 Web服务器 325
*8.2.* 最简单的Python Web服务器 326
*8.2.2 Web服务器网关接口(WSGI) 327
*8.2.3 ASGI 327
*8.2.4 Apache 328
*8.2.5 NGINX 329
*8.2.6 其他Python Web服务器 329
*8.3 Web服务器框架 330
*8.3.* Bottle 330
*8.3.2 Flask 332
*8.3.3 Django 336
*8.3.4 其他框架 336
*8.4 数据库框架 337
*8.5 Web服务和自动化 337
*8.5.* webbrowser 337
*8.5.2 webview 338
*8.6 Web API和REST 339
*8.7 爬取数据 339
*8.7.* Scrapy 340
*8.7.2 BeautifulSoup 340
*8.7.3 requests-html 34*
*8.8 看场电影吧 34*
*8.9 后续内容 344
*8.*0 练习 344
第 *9 章 成为Python主义者 345
*9.* 关于编程 345
*9.2 寻找Python代码 346
*9.3 安装Python* 346
*9.3.* 使用pip 346
*9.3.2 使用virtualenv 347
*9.3.3 使用pipenv 347
*9.3.4 使用*管理器 348
*9.3.5 从源代码安装 348
*9.4 集成化开发环境 348
*9.4.* IDLE 348
*9.4.2 PyCharm 348
*9.4.3 IPython 349
*9.4.4 Jupyter Notebook 350
*9.4.5 JupyterLab 35*
*9.5 名称和文档 35*
*9.6 添加类型提示 352
*9.7 测试 353
*9.7.* 使用pylint、pyflakes 和pep8检查代码 353
*9.7.2 使用unittest进行测试 355
*9.7.3 使用doctest进行测试 358
*9.7.4 使用nose进行测试 359
*9.7.5 其他测试框架 360
*9.7.6 持续集成 360
*9.8 调试Python代码 36*
*9.8.* 使用print() 36*
*9.8.2 使用装饰器 362
*9.8.3 使用pdb 363
*9.8.4 使用breakpoint() 368
*9.9 记录错误消息 368
*9.*0 *化 370
*9.*0.* 测量时间 370
*9.*0.2 算法和数据结构 373
*9.*0.3 Cython、NumPy和C扩展 374
*9.*0.4 PyPy 374
*9.*0.5 Numba 374
*9.** 源代码控制 375
*9.**.* Mercurial 375
*9.**.2 Git 376
*9.*2 分发你的程序 378
*9.*3 克隆本书 378
*9.*4 更多内容 378
*9.*4.* 图书 379
*9.*4.2 网站 379
*9.*4.3 团体 380
*9.*4.4 会议 380
*9.*4.5 Python相关的工作机会 380
*9.*5 后续内容 380
*9.*6 练习 38*
第 20 章 Python的艺术 382
20.* 2D图形 382
20.*.* 标准库 382
20.*.2 PIL和Pillow 383
20.*.3 ImageMagick 386
20.2 3D图形 387
20.3 3D动画 387
20.4 图形用户界面 388
20.5 绘图、图形和可视化 389
20.5.* Matplotlib 389
20.5.2 Seaborn 39*
20.5.3 Bokeh 393
20.6 游戏 393
20.7 音频和音乐 393
20.8 后续内容 394
20.9 练习 394
第 2* 章 工作中的Python 395
2*.* Microsoft Office套件 395
2*.2 执行企业任务 396
2*.3 处理企业数据 397
2*.3.* 提取、转换和装载 397
2*.3.2 数据验证 400
2*.3.3 其他信息源 400
2*.4 开源Python企业* 400
2*.5 金融中的Python 40*
2*.6 商业数据* 40*
2*.7 地图 402
2*.7.* 格式 402
2*.7.2 根据shapefile绘制地图 403
2*.7.3 Geopandas 405
2*.7.4 其他绘图* 405
2*.7.5 应用和数据 406
2*.8 后续内容 406
2*.9 练习 406
第 22 章 Python的科学 407
22.* 标准库中的数学和统计 407
22.*.* 数学函数 407
22.*.2 处理复数 409
22.*.3 使用decimal*确计算浮点数 4*0
22.*.4 使用fractions执行有理数运算 4*0
22.*.5 使用array*建压缩序列 4**
22.*.6 使用statistics进行简单的统计 4**
2*.*.7 矩阵乘法 4**
22.2 科学Python 4**
22.3 NumPy 4*2
22.3.* 使用array()*建数组 4*2
22.3.2 使用arange()*建数组 4*3
22.3.3 使用zeros()、ones()和random()*建数组 4*3
22.3.4 使用reshape()改变数组的形状 4*4
22.3.5 使用[]获取元素 4*5
22.3.6 数组的算术运算 4*6
22.3.7 线性代数 4*7
22.4 SciPy 4*8
22.5 SciKit 4*8
22.6 Pandas 4*8
22.7 Python和各个科学*域 4*9
22.8 后续内容 420
22.9 练习 420
附录A 写给初级程序员的计算机软硬件知识 42*
附录B 安装Python 3 430
附录C 截然*同的async 437
附录D 习题答案 442
附录E 速查表 483
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...