编辑推荐
在本书中,一流的Python程序员Mark Summerfield展示了如何充分利用Python 3的功能与特性来编写代码。与以前的版本相比。Python 3功能更强大,使用更方便,语法更一致,表达能力更丰富。本书将编写程序、使用标准或第三方Python 3库、创建新的专用库模块所必需的所有相关知识整合到了一起。
作为一名具有多年Python使用经验的程序员,Summerfield在本书中为读者深度分析与讲解了从其他途径无法获取的Python3使用与开发技术。Summerfield从Python的“优美核心(beautiful heart)”(即编写高健壮性、高性能程序的8个关键要素)开始进行讲解,并以这些关键要素为基础,介绍了有助于增强程序开发实用技能的新主题,每个主题都包含其概念和多个操作实例。
本书既可以作为Python编程指南,也可以作为Python语言参考手册。
内容简介
Python是一种脚本语言,在各个领域得到了日益广泛的应用。本书全面深入地对Python语言进行了讲解。
本书首先讲述了构成Python语言的8个关键要素,之后分章节对其进行了详尽的阐述,包括数据类型、控制结构与函数、模块、文件处理、调试、进程与线程、网络、数据库、正则表达式、GUI程序设计等各个方面,并介绍了其他一些相关主题。全书内容以实例讲解为主线,每章后面附有练习题,便于读者更好地理解和掌握所讲述的内容。
本书适合于作为Python语言教科书使用,对Python程序设计人员也有一定的参考价值。
第1章 过程型程序设计快速入门 1
1.1 创建并运行python程序 1
1.2 python的关键要素 5
1.2.1 要素#1:数据类型 6
1.2.2 要素#2:对象引用 7
1.2.3 要素#3:组合数据类型 9
1.2.4 元素#4:逻辑操作符 12
1.2.5 要素#5:控制流语句 16
1.2.6 要素#6:算术操作符 20
1.2.7 要素#7:输入/输出 23
1.2.8 要素#8:函数的创建与调用 25
1.3 实例 27
1.3.1 bigdigits.py 28
1.3.2 generate_grid.py 30
1.4 总结 33
1.5 练习 35
第2章 数据类型 38
2.1 标识符与关键字 38
2.2 integral类型 41
2.2.1 整数 41
.2.2.2 布尔型 44
2.3 浮点类型 44
2.3.1 浮点数 45
2.3.2 复数 48
2.3.3 十进制数字 49
2.4 字符串 50
2.4.1 比较字符串 53
2.4.2 字符串分片与步距 54
2.4.3 字符串操作符与方法 56
2.4.4 使用str.format()方法进行字符串格式化 62
2.4.5 字符编码 73
2.5 实例 75
2.5.1 quadratic.py 75
2.5.2 csv2html.py 78
2.6 总结 82
2.7 练习 84
第3章 组合数据类型 86
3.1 序列类型 86
3.1.1 元组 87
3.1.2 命名的元组 89
3.1.3 列表 91
3.1.4 列表内涵 96
3.2 集合类型 98
3.2.1 集合 98
3.2.2 集合内涵 102
3.2.3 固定集合 102
3.3 映射类型 103
3.3.1 字典 103
3.3.2 字典内涵 110
3.3.3 默认字典 111
3.4 组合数据类型的迭代与复制 113
3.4.1 迭代子、迭代操作与函数 113
3.4.2 组合类型的复制 121
3.5 实例 123
3.5.1 generate_usernames.py 123
3.5.2 statistics.py 126
3.6 总结 130
3.7 练习 131
第4章 控制结构与函数 133
4.1 控制结构 133
4.1.1 条件分支 133
4.1.2 循环 135
4.2 异常处理 136
4.2.1 捕获与产生异常 136
4.2.2 自定义异常 141
4.3 自定义函数 144
4.3.1 名称与docstrings 148
4.3.2 参数与参数拆分 149
4.3.3 存取全局范围的变量 152
4.3.4 lambda函数 153
4.3.5 断言 155
4.4 实例:make_html_skeleton.py 156
4.5 总结 162
4.6 练习 162
第5章 模块 165
5.1 模块与包 165
5.1.1 包 169
5.1.2 自定义模块 171
5.2 python标准库概览 181
5.2.1 字符串处理 181
5.2.2 io.stringio类 182
5.2.3 命令行程序设计 183
5.2.4 数学与数字 184
5.2.5 时间与日期 184
5.2.6 实例:calendar、datetime与time模块 185
5.2.7 算法与组合数据类型 185
5.2.8 文件格式、编码与数据持久性 187
5.2.9 文件、目录与进程处理 190
5.2.10 网络与internet程序设计 192
5.2.11 xml 193
5.2.12 其他模块 195
5.3 总结 196
5.4 练习 198
第6章 面向对象程序设计 200
6.1 面向对象方法 200
6.2 自定义类 204
6.2.1 属性与方法 205
6.2.2 继承与多态 209
6.2.3 使用特性进行属性存取控制 211
6.2.4 创建完全整合的数据类型 213
6.3 自定义组合类 225
6.3.1 创建聚集组合数据的类 225
6.3.2 使用聚集创建组合类 231
6.3.3 使用继承创建组合类 237
6.4 总结 244
6.5 练习 245
第7章 文件处理 247
7.1 二进制数据的读写 251
7.1.1 带可选压缩的pickle 252
7.1.2 带可选压缩的原始二进制数据 256
7.2 文本文件的写入与分析 263
7.2.1 写入文本 263
7.2.2 分析文本 265
7.2.3 使用正则表达式分析文本 268
7.3 写入与分析xml文件 270
7.3.1 元素树 270
7.3.2 dom 274
7.3.3 手动写入xml 277
7.3.4 使用sax分析xml 278
7.4 随机存取二进制文件 281
7.4.1 通用的binaryrecordfile类 281
7.4.2 实例:bikestock模块的类 289
7.5 总结 292
7.6 练习 293
第8章 高级程序设计技术 295
8.1 过程型程序设计进阶 296
8.1.1 使用字典进行分支 296
8.1.2 生成器表达式与函数 297
8.1.3 动态代码执行与动态导入 300
8.1.4 局部函数与递归函数 306
8.1.5 函数与方法修饰器 311
8.1.6 函数注释 314
8.2 面向对象程序设计进阶 317
8.2.1 控制属性存取 317
8.2.2 函子 320
8.2.3 上下文管理器 322
8.2.4 描述符 325
8.2.5 类修饰器 330
8.2.6 抽象基类 333
8.2.7 多继承 340
8.2.8 元类 342
8.3 函数型程序设计 346
8.3.1 偏函数 348
8.3.2 协程 349
8.4 实例:valid.py 356
8.5 总结 359
8.6 练习 360
第9章 调试、测试与profiling 361
9.1 调试 361
9.1.1 处理语法错误 362
9.1.2 处理运行时错误 363
9.1.3 科学的调试 367
9.2 单元测试 371
9.3 profiling 377
9.4 小结 382
第10章 进程与线程 383
10.1 使用多进程模块 384
10.2 将工作分布到多个线程 388
10.2.1 实例:线程化的单词寻找程序 389
10.2.2 实例:一个线程化的重复文件发现程序 392
10.3 总结 396
10.4 练习 397
第11章 网络 399
11.1 创建tcp客户端 400
11.2 创建tcp服务器 406
11.3 总结 412
11.4 练习 412
第12章 数据库程序设计 414
12.1 dbm数据库 414
12.2 sql数据库 418
12.3 总结 425
12.4 练习 425
第13章 正则表达式 427
13.1 python的正则表达式语言 428
13.1.1 字符与字符类 428
13.1.2 量词 429
13.1.3 组与捕获 431
13.1.4 断言与标记 433
13.2 正则表达式模块 436
13.3 总结 444
13.4 练习 445
第14章 分析简介 446
14.1 bnf语法与分析的术语 447
14.2 手动编写分析器 451
14.2.1 简单的键-值数据分析 451
14.2.2 播放列表数据分析 454
14.2.3 blocks域特定语言的分析 456
14.3 使用pyparsing进行更python化的分析 464
14.3.1 pyparsing快速介绍 465
14.3.2 简单的键-值数据分析 468
14.3.3 播放列表数据分析 470
14.3.4 分析块域特定语言 471
14.3.5 分析一阶逻辑 476
14.4 使用ply进行lex/yacc风格的分析 481
14.4.1 简单的键-值数据分析 483
14.4.2 播放列表数据分析 485
14.4.3 分析块域特定语言 487
14.4.4 分析一阶逻辑 489
14.5 小结 493
14.6 练习 494
第15章 gui程序设计介绍 496
15.1 对话框风格的程序 499
15.2 主窗口风格的程序 504
15.2.1 创建一个主窗口 504
15.2.2 创建自定义对话框 514
15.3 总结 517
15.4 练习 518
《历史的六个面孔》内容简介:本书介绍了春秋时的管仲、战国时的商鞅、西汉时的桑弘羊、唐代的刘晏、宋代的王安石、明代的张居正这
Struts是目前非常流行的基于MVC的JavaWeb框架。《精通Struts:基于MVC的JavaWeb设计与开发》详细介绍了在最新的Struts1.1以及不...
《认知心理学》内容简介:中国心理学家对认知心理学的兴趣,主要表现在两个方面。在理论方面,认知心理学有助于揭示人的认识过程
《内容电商运营》内容简介:如今,越来越多的人投身到内容电商运营工作中,并取得了可喜的成绩,如“罗辑思维”“凯叔讲故事”“小
《和与战的抉择》内容简介:《和与战的抉择:战后国民党的东北决策》主要研究国民党接收东北之失败的背景和原因。东北问题是战后中
《“爱无痕”学科融合德育主题教育活动指导手册》内容简介:为实施爱家人、爱伙伴、爱学校、爱祖国、爱地球的“五爱”教育,上海市
方兴东,清华大学博士。1996年起开始涉足互联网领域,执著于中国互联网的推动,被《南方周末》冠为中国的“网络旗手”。1999年9月
MATLAB金融算法分析实战-基于机器学习的股票量化分析 本书特色 本书全面系统地讲解了MATLAB金融算法设计应用,以及金融数据挖掘中趋向和发展趋势指标,并结...
《天下》全景凸现通信业二十年嬗变,透视移动、电信、联通、网通等电信企业的内幕,昭示“战国七雄”的市场博弈之道。一男三女,
《新能源汽车与新型蓄能电池及热电转换技术》详尽介绍了世界和中国在新能源汽车与新型蓄能电池、热电转换技术领域的发展现状与前
SPSS数据分析-问题提出与实例导学 本书特色 《SPSS数据分析:问题提出与实例导学》由中国水利水电出版社出版。SPSS数据分析-问题提出与实例导学 目录 前...
StephenWalther蜚声世界的ASP.NET专家,现为微软公司ASP.NET小组资深程序经理。多次荣获微软最有价值专家(MVP)称号,并荣获微软
本书系统地介绍了近年来国内外人机界面的最新发展与成果,全书共分6部分,14章。第1部分为概述,介绍了人机界面的定义、起源、发
新手学电脑从入门到精通 本书特色 《新手学电脑从入门到精通》以知识应用为讲解主旨,以动手实操为组织形式,逐一对电脑的使用方法、操作技能、实际应用等方面做了全面阐...
《科学哲学(中文版)》内容简介:何为科学?科学是否客观?科学能否解释一切?本书为当代科学哲学中的主要问题提供了一幅清晰准确
《狼书(卷1):更了不起的Node.js》内容简介:Node.js开发简单,性能极好,一经发布便成了明星级项目。随着大前端领域的蓬勃发展,
《温故(十三)》内容简介:《温故》是一种陆续出版的历史文化读物。以今天的视角来追怀与审视过去,并为当下的生存与未来的发展提
《企业级Kubernetes应用》内容简介:Kubernetes从2015年7月21日发布1.0版本,经过三年多的时间不断发展至今,其作为开源的容器应用
《李小龙信札:功夫、表演和生命》内容简介:这本信札集记载了李小龙从赴美国求学到在香港逝世之间的十五年珍贵时光。在这些寄给家
SOLIDWORKS高级曲面教程-2015版 本书特色 美国ds solidworks公司所著的《solidworks高 级曲面教程》(2015版)根据soli...