描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302663799
?案例丰富,信息量大,实用性强,注释详细。
?深度与广度兼顾。剖析Python编程模式,适当介绍标准库与扩展库工作原理以及代码优化与安全编程知识,满足不同层次读者的需要。
?知识点密集、紧凑。书中尽量减少代码运行结果和软件安装过程截图,充分利用有限篇幅讲解更多知识。
?配套资源丰富。提供教学课件、教学大纲、教学计划、习题答察、配套源码、数据文件、在线练习与考试软件等。
全书共18章,主要内容如下: 第1章介绍Python基础知识与概念;第2章讲解列表、元组、字典、集合等常用可迭代对象;第3章讲解Python选择结构与循环结构;第4章讲解字符串基本操作方法与正则表达式模块re的用法;第5章讲解函数设计与使用;第6章讲解面向对象编程有关的知识;第7章讲解文本文件与二进制文件的读写,以及文件级操作与目录操作,Office文件与PDF文件操作;第8章讲解异常处理结构及Python程序的调试与测试方法;第9章讲解标准库tkinter的GUI应用;第10章讲解网络编程,网页内容读取;第11章讲解安卓平台的Python编程;第12章讲解注册表编程以及系统运维;第13章讲解多线程与多进程编程;第14章介绍SQLite、Access、MS SQL Server、MySQL访问方法;第15章讲解图形图像编程、音乐编程、语音识别及视频处理;第16章介绍逆向工程与软件分析原理、IDAPython编程、Immunity Debugger编程以及Windows平台软件调试原理;第17章讲解NumPy、SciPy、Matplotlib、Pandas与statistics在科学计算和可视化、数据处理、统计与分析中的应用;第18章讲解安全哈希算法、对称密钥密码算法DES和AES,以及非对称密钥密码算法RSA与数字签名算法DSA。
本书既可以作为计算机及相关专业的教材,也可以作为 Python爱好者的参考书。
第1章基础知识1
1.1如何选择Python版本1
1.2Python安装与简单使用3
1.3使用pip管理Python扩展库4
1.4Python基础知识5
1.4.1Python对象模型5
1.4.2Python变量6
1.4.3数字9
1.4.4字符串11
1.4.5运算符与表达式11
1.4.6常用内置函数17
1.4.7基本输入输出25
1.4.8模块导入与使用25
1.5Python代码编写规范27
1.6Python文件名28
1.7Python程序的__name__属性29
1.8编写和使用自己的包29
1.9Python程序伪编译与打包30
1.10案例精选31
1.11The Zen of Python33
本章小结33
习题34
第2章Python可迭代对象35
2.1列表35
2.1.1列表的创建与删除36
2.1.2列表元素的增加36
2.1.3列表元素的删除38
2.1.4列表元素访问与计数41
2.1.5元素存在性测试41
2.1.6切片操作42
2.1.7列表排序与逆序44
2.1.8用于序列操作的常用内置函数45
2.1.9列表推导式46
2.1.10使用列表实现向量运算48
2.2元组49
2.2.1元组的创建与删除49
2.2.2元组与列表的区别49
2.2.3序列解包50
2.2.4生成器表达式51
2.3字典52
2.3.1字典的创建与删除52
2.3.2字典元素的访问53
2.3.3字典元素的添加与修改54
2.3.4字典应用案例54
2.4集合55
2.4.1集合的创建与常用操作55
2.4.2集合运算56
2.4.3集合运用案例56
2.5再谈内置函数sorted()58
2.6复杂数据结构59
2.6.1堆59
2.6.2队列60
2.6.3栈63
2.6.4链表64
2.6.5二叉树65
2.6.6有向图66
本章小结67
习题68
第3章选择与循环70
3.1条件表达式70
3.2选择结构71
3.2.1单分支选择结构71
3.2.2双分支选择结构71
3.2.3嵌套的选择结构72
3.2.4多分支选择结构73
3.2.5选择结构应用案例75
3.3循环结构76
3.3.1while循环与for循环76
3.3.2循环结构的优化77
3.4break和continue语句78
3.5案例精选78
本章小结84
习题85
第4章字符串与正则表达式86
4.1字符串86
4.1.1字符串格式化86
4.1.2字符串常用方法89
4.1.3字符串常量94
4.1.4可变字符串96
4.1.5中文分词与拼音处理96
4.1.6字符串应用案例精选97
4.2正则表达式100
4.2.1正则表达式语法100
4.2.2re模块主要函数102
4.2.3直接使用re模块函数105
4.2.4使用正则表达式对象107
4.2.5子模式与Match对象109
4.2.6正则表达式应用案例精选112
本章小结116
习题117
第5章函数设计与使用118
5.1函数定义与调用119
5.2形参与实参120
5.3参数类型121
5.3.1默认值参数121
5.3.2关键参数123
5.3.3可变长度参数123
5.3.4参数传递时的序列解包124
5.4return语句125
5.5变量作用域125
5.6lambda表达式127
5.7案例精选128
5.8高级话题134
本章小结139
习题140
第6章面向对象程序设计141
6.1类的定义与使用141
6.1.1类定义语法141
6.1.2self参数142
6.1.3类成员与实例成员142
6.1.4私有成员与公有成员143
6.2方法144
6.3属性146
6.4特殊方法与运算符重载148
6.4.1常用特殊方法148
6.4.2案例精选150
6.5继承155
6.6多态159
本章小结160
习题160
第7章文件操作161
7.1文件对象161
7.2文本文件内容操作案例精选162
7.3二进制文件操作案例精选165
7.3.1使用pickle模块165
7.3.2使用struct模块166
7.4文件级操作166
7.4.1os与os.path模块166
7.4.2shutil模块167
7.5目录操作168
7.6案例精选170
本章小结181
习题182
第8章异常处理结构与程序调试、测试183
8.1基本概念183
8.2Python内置异常类与自定义异常184
8.3异常处理结构语法应用186
8.3.1try…except…186
8.3.2try…except…else…187
8.3.3try…except…except…except…188
8.3.4try…except…else…finally…189
8.4断言与上下文管理190
8.4.1断言190
8.4.2上下文管理191
8.5使用IDLE调试代码191
8.6使用pdb模块调试程序192
8.6.1pdb模块常用命令192
8.6.2使用pdb模块调试Python程序193
8.7Python单元测试195
8.8文档测试198
8.9性能测试199
本章小结200
习题201
第9章tkinter应用开发202
9.1tkinter基础202
9.1.1tkinter常用组件202
9.1.2tkinter应用程序开发基本流程203
9.2tkinter应用案例精选205
9.2.1用户登录界面205
9.2.2选择类组件应用206
9.2.3简单文本编辑器208
9.2.4简单画图程序212
9.2.5电子时钟215
9.2.6简易计算器217
9.2.7桌面放大镜219
9.2.8抽奖程序219
9.2.9猜数游戏221
9.2.10图片查看器程序224
9.2.11在tkinter应用程序中使用日历选择组件225
本章小结227
习题227
第10章网络程序设计228
10.1计算机网络基础知识228
10.2UDP和TCP编程基础230
10.2.1UDP编程230
10.2.2TCP编程232
10.3网络编程案例精选235
10.3.1网络嗅探器235
10.3.2多进程端口扫描器236
10.3.3查看本机所有联网程序信息237
10.3.4查看局域网内IP地址与MAC地址的对应关系238
10.3.5查看本机网络流量238
10.3.6局域网内服务器自动发现238
10.3.7多线程 Socket实现素数远程查询239
10.3.8建立和使用TCP长连接240
10.4网页内容读取与网页爬虫242
10.4.1网页内容读取与域名处理基础知识242
10.4.2网页爬虫实战243
本章小结245
习题246
第11章安卓平台的Python编程247
11.1QPython简介247
11.2安卓应用开发案例248
本章小结251
习题252
第12章Windows系统编程253
12.1注册表编程253
12.2创建可执行文件256
12.3调用外部程序257
12.4创建窗口261
12.5判断Windows操作系统的版本263
12.6系统运维264
12.6.1Python扩展库psutil264
12.6.2使用Pywin32实现事件查看器266
12.6.3切换用户登录身份268
本章小结269
习题270
第13章多线程与多进程编程271
13.1threading模块271
13.2Thread对象272
13.2.1Thread对象中的方法272
13.2.2Thread对象中的daemon属性273
13.3线程同步技术274
13.3.1Lock/RLock对象275
13.3.2Condition对象276
13.3.3queue模块278
13.3.4Event对象279
13.3.5Semaphore与BoundedSemaphore280
13.3.6Barrier对象281
13.4多进程编程281
13.4.1创建与启动进程282
13.4.2进程间数据交换283
13.4.3进程同步286
13.4.4标准库subprocess286
本章小结290
习题291
第14章数据库编程292
14.1SQLite应用292
14.1.1Connection对象293
14.1.2Cursor对象293
14.1.3Row对象295
14.2访问其他类型数据库297
14.2.1操作Access数据库297
14.2.2操作MS SQL Server数据库298
14.2.3操作MySQL数据库299
本章小结300
习题301
第15章多媒体编程302
15.1图形编程302
15.1.1创建图形编程框架302
15.1.2绘制文字303
15.1.3绘制图形303
15.1.4纹理映射304
15.1.5处理键盘/鼠标事件306
15.2图像编程307
15.2.1图像处理模块Pillow功能简介307
15.2.2使用Pillow计算椭圆中心309
15.2.3使用Pillow动态生成比例分配图310
15.2.4使用Pillow生成验证码图片310
15.3音乐编程312
15.3.1音乐播放312
15.3.2WAV波形音乐文件处理314
15.4语音识别315
15.5视频处理和摄像头接口调用318
15.5.1OpenCV应用318
15.5.2moviepy应用319
本章小结321
习题322
第16章逆向工程与软件分析323
16.1主流项目与插件简介323
16.1.1主流项目324
16.1.2常用插件324
16.2IDAPython与Immunity Debugger编程325
16.2.1IDAPython编程325
16.2.2Immunity Debugger编程329
16.3Windows平台软件调试原理334
16.3.1Windows调试接口334
16.3.2调试事件335
16.3.3进程调试336
16.3.4线程环境337
16.3.5断点337
16.4案例精选339
本章小结341
习题341
第17章数据分析、科学计算与可视化342
17.1NumPy数组运算与矩阵运算342
17.2SciPy简单应用348
17.2.1常数与特殊函数349
17.2.2SciPy中值滤波350
17.2.3使用SciPy进行多项式计算351
17.2.4数理统计与随机变量352
17.3Matplotlib可视化案例精选352
17.3.1绘制折线图352
17.3.2绘制散点图353
17.3.3绘制饼状图354
17.3.4在图例中显示公式355
17.3.5创建和使用子图356
17.3.6绘制有描边和填充效果的柱状图356
17.3.7使用雷达图展示学生成绩358
17.3.8绘制三维曲面359
17.3.9绘制三维曲线359
17.3.10设置图例样式361
17.4数据分析扩展库Pandas用法精要361
17.5统计分析模块statistics常用函数365
本章小结366
习题367
第18章密码学编程368
18.1安全哈希算法368
18.2对称密钥密码算法DES和AES368
18.3非对称密钥密码算法RSA与数字签名算法DSA370
18.3.1RSA370
18.3.2DSA371
本章小结372
习题372
参考文献373
Python由Guido van Rossum于1989年年底开始设计与开发,第一个公开发行版本发行于1991年。Python推出不久就迅速得到了各行业人士的青睐,经过30多年的发展,已经渗透到计算机科学与技术、统计分析、移动终端开发、科学计算可视化、逆向工程与软件分析、图形编程与图像处理、人工智能、游戏设计与策划、网站开发、数据采集、数据分析与处理、密码学、系统运维、音乐编程、视频处理、计算机辅助教育、医药辅助设计、天文信息处理、化学、生物等几乎所有专业和领域。著名搜索引擎Google的核心代码使用Python实现,迪士尼公司的动画制作与生成采用Python实现,大部分UNIX和Linux都内建了Python环境支持,豆瓣网使用Python作为主体开发语言进行网站架构和有关应用的设计与开发,网易公司大量网络游戏的服务器端代码超过70%采用Python进行设计与开发,易度公司的PaaA企业应用云端开发平台和百度云计算平台BAE也都大量采用了Python语言,美国宇航局使用Python实现了CAD/CAE/PDM库及模型管理系统,雅虎公司使用Python建立全球范围的站点群,微软公司的集成开发环境Visual Studio 2015开始默认支持Python语言,开源ERP系统Odoo完全采用Python语言开发,引力波数据是用Python进行处理和分析的,大量人工智能开发框架提供Python接口,类似的案例数不胜数。
早在多年前Python就已经成为卡内基梅隆大学、麻省理工学院、加州大学伯克利分校、哈佛大学等国外很多大学计算机专业或非计算机专业的程序设计入门教学语言,目前国内也有不少学校的多个专业陆续开设了Python程序设计课程。Python分别于2007年、2010年、2018年、2020年、2021年先后5次被TIOBE网站评为年度语言;2014年12月在IEEE Spectrum推出的编程语言排行榜中,Python取得了第5位的好名次;2017年至2023年连续7年IEEE Spectrum把Python排在第一位。
Python是一门免费、开源的跨平台高级动态编程语言,支持命令式编程、函数式编程,完全支持面向对象程序设计,拥有大量功能强大的内置对象、标准库和扩展库以及众多狂热的支持者,使得各领域的研发人员、策划人员以及管理人员都能够快速实现和验证自己的思路与创意。在有些编程语言中需要编写大量代码才能实现的功能,在Python中直接调用内置函数或标准库对象即可实现。Python用户只需要把主要精力放在业务逻辑的设计与实现上,在开发效率和运行效率之间达到了完美的平衡,其精妙之处令人赞叹。
Python是一门快乐、优雅的语言。与C语言系列和Java等语言相比,Python大幅降低了学习与使用的难度。Python易学易用,语法简洁清晰,代码可读性强,编程模式非常符合人类思维方式和习惯。经常浏览Python社区的优秀代码、Python标准库和扩展库文档甚至源代码,适当了解其内部工作原理,可以帮助读者编写更加优雅的Python程序。
如果读者有其他程序设计语言的基础,那么在学习和使用Python的过程中,一定不要把用其他语言编程的习惯和风格带到Python中,那样不仅会使代码变得非常冗长、烦琐,还可能严重影响代码的效率。应该尽量尝试从最自然、最简洁的角度出发去思考和解决问题,这样才能写出更加优雅、更加Pythonic的代码。
本书内容组织
对于Python程序员来说,熟练运用优秀、成熟的扩展库可以快速实现业务逻辑和创意,而Python语言基础知识和基本数据结构的熟练掌握则是理解和运用其他扩展库的条件,并且在实际开发中建议优先使用Python内置对象和标准库对象实现预定功能。本书前8章使用大量篇幅介绍Python编程基础知识,通过大量案例演示Python语言的精妙与强大。从第9章开始介绍大量标准库和扩展库在GUI编程、网络编程、移动终端编程、Windows系统编程、多线程与多进程编程、数据库编程、多媒体编程、逆向工程与软件分析、科学计算与可视化、密码学编程等多个领域的应用。全书共18章,主要内容组织如下。
第1章基础知识。介绍如何选择Python版本,Python对象模型,数字、字符串等基本数据类型,运算符与表达式,常用内置函数,基本输入输出,Python代码编写规范,Python文件名等。
第2章Python可迭代对象。讲解可迭代对象常用的方法和基本操作,列表基本操作与常用方法,列表推导式,切片操作,元组与生成器推导式,序列解包,字典、集合基本操作与常用方法,字典推导式与集合推导式,以及如何使用列表实现队列、栈、二叉树、有向图等复杂数据结构。
第3章选择与循环。讲解Python选择结构,while循环与for循环,带else子句的循环结构,break和continue语句,选择结构与循环结构的综合运用。
第4章字符串与正则表达式。讲解字符串编码格式,字符串格式化、替换、分隔、连接、查找、排版等基本操作,正则表达式语法、正则表达式对象、子模式与Match对象,以及Python正则表达式模块re的应用。
第5章函数设计与使用。讲解函数定义与调用,关键参数、默认值参数、可变长度参数等不同参数类型,全局变量与局部变量,参数传递时的序列解包,return语句,lambda表达式,以及函数式编程、生成器函数与可调用对象等若干高级话题。
第6章面向对象程序设计。讲解类的定义与使用,self与cls参数,类成员与实例成员,私有成员与公有成员,特殊方法与运算符重载,继承与多态等内容。
第7章文件操作。讲解文件操作基本知识,Python文件对象,文本文件读写操作,二进制文件读写与对象序列化,文件复制、移动、重命名,文件类型检测、完整性检查,文件压缩与解压缩,文件夹大小统计、增量备份,删除指定类型的文件以及Office文件操作等内容。
第8章异常处理结构与程序调试、测试。讲解Python内置异常类与自定义异常类,不同形式的异常处理结构,使用IDLE和pdb模块调试Python程序,Python单元测试相关知识。
第9章tkinter应用开发。讲解如何使用标准库tkinter进行GUI编程,通过大量实际案例演示基本组件的用法。
第10章网络程序设计。讲解计算机网络基础知识,UDP、TCP编程,网页内容读取与网页爬虫。
第11章安卓平台的Python编程。介绍Pydroid3和QPython3开发环境的应用,讲解安卓平台的Python程序设计。
第12章Windows系统编程。讲解注册表编程,将Python程序打包为exe可执行文件,GUI编程,系统版本判断,在Python中调用外部程序,以及Python在系统运维中的应用。
第13章多线程与多进程编程。讲解Python标准库threading和multiprocessing在多线程编程与多进程编程中的应用,以及多线程与多进程的数据共享与同步控制。
第14章数据库编程。介绍SQLite数据库及其相关概念,Connection对象、Cursor对象、Row对象,以及使用Python扩展库操作Access、MS SQL Server、MySQL等数据库。
第15章多媒体编程。讲解扩展库PyOpenGL在计算机图形编程中的应用,扩展库Pillow在图像编程中的应用,pygame、SciPy在音乐编程中的应用,speech在语音识别中的应用,以及opencvpython和moviepy在视频处理中的应用。
第16章逆向工程与软件分析。介绍逆向工程与软件分析的原理和相关插件,IDAPython与Immunity Debugger在软件分析中的应用,以及Windows平台软件调试原理。
第17章数据分析、科学计算与可视化。讲解扩展库NumPy、SciPy、Matplotlib在科学计算与可视化领域的应用,以及扩展库Pandas与标准库statistics在数据处理、统计与分析中的应用。
第18章密码学编程。以pycryptodome、rsa、hashlib等模块为主讲解安全哈希算法、对称密钥密码算法DES和AES,以及非对称密钥密码算法RSA与数字签名算法DSA的应用。
本书信息量大,知识点紧凑,案例丰富,实用性强。全书100多个涉及不同行业领域的实用案例,没有多余的文字、程序输出结果或软件安装截图,充分利用宝贵的篇幅来讲解尽可能多的知识。本书作者具有20年程序设计教学经验,讲授过汇编语言、C/C /C#、Java、PHP、Python等多门程序设计语言,编写过大量的应用程序。本书内容结合作者多年教学与开发过程中积累的许多经验和案例,并将其巧妙地糅进了相应的章节。
本书对Python内部工作原理进行了一定深度的剖析,95%以上的案例均使用Python 3.9和3.10演示,代码同样适用于Python 3.6/3.7/3.8/3.11/3.12/3.13以及更高版本实现,另外还适当介绍了高版本的部分新特性。书中适当介绍了Python代码优化和安全编程的有关知识,可以满足不同层次读者的需要。
本书适用读者
本书可以作为(但不限于):
(1) 计算机专业本科生Python程序设计教材或研究生书目。本科生建议72学时以上,讲授本书全部章节。
(2) 数字媒体技术、软件工程、网络工程、信息安全、通信工程、电子、自动化及其他工科专业本科生或研究生Python程序设计教材。建议64学时,讲授前9章,再根据专业特点与需要在其他章节中选讲3~5章。
(3) 会计、经济、金融、管理、心理学、统计及其他非工科专业研究生或本科生Python程序设计教材。建议64学时,讲授前8章中不带星号的内容,第9章的案例选讲三四个,再根据专业特点与需要在其他章节中选讲两三章,其余章节由学生根据兴趣自学。
(4) 非计算机相关专业本科生公共基础课Python程序设计教材。建议48学时并边讲边练,讲授前8章中不带星号的章节,再根据需要在其他章节中选讲两三章,其余章节由学生根据兴趣自学。
(5) 专科院校或职业技术学院Python程序设计教材。建议96学时,讲授前9章中不带星号的内容以及第10、13、14、17章。
(6) Python培训用书。建议时间为一周,讲授前8章,再根据需要选讲3~5章。
(7) 具有一定Python基础的读者进阶首选学习资料。
(8) 涉及Python开发的程序员、策划人员、科研人员和管理人员阅读书目。
(9) 打算利用业余时间学习一门快乐的程序设计语言并编写几个小程序来娱乐或解决工作中小任务的读者首选学习资料。
(10) 少数对编程具有浓厚兴趣和天赋的中学生课外阅读资料。
教学资源
本书包含思政元素,提供全套教学课件、源代码、电子教案、习题答案、考试题库、在线练习与考试软件(目前有4000个客观题和780个编程题)以及教学大纲,Python程序设计课程
思政案例分享
配套资源可以登录清华大学出版社官方网站(www.tup.com.cn)下载或与作者联系索取,本书编辑的电子邮箱地址为[email protected],作者的微信公众号为“Python小屋”。
由于时间仓促,作者水平有限,书中难免存在纰漏,不足之处还请同行指正并通过作者联系方式进行反馈与交流。作者将不定期在公众号和微信发布和更新勘误表,并通过QQ和微信答复读者的疑问。
感谢
首先感谢父母的养育之恩,在当年那么艰苦的条件下还坚决支持我读书,没有让我像其他同龄的孩子一样辍学。感谢姐姐、姐夫多年来对我的爱护以及在老家对父母的照顾,感谢善良的弟弟、弟媳在老家对父母的照顾,正是有了你们,我才能在远离家乡的城市安心工作。感谢我的妻子在生活中对我的大力支持,也感谢懂事的女儿在我工作的时候能够在旁边安静地读书而尽量不打扰我,在定稿前和妈妈一起帮我阅读全书并检查出了几个错别字。
感谢每一位读者,感谢您在茫茫书海中选择了本书,衷心祝愿您能够从本书中受益,学到您需要的知识!同时也期待每一位读者的热心反馈,随时欢迎您指出书中的不足!
本书在编写出版过程中得到清华大学出版社的大力支持和帮助,在此表示衷心的感谢。
董付国定稿于山东烟台
2024年1月
评论
还没有评论。