Python中文网

编程书籍推荐:Python程序设计基础(第2版)(计算机系列教材),由清华大学出版社2018-02-01月出版,本书发行作者信息: 董付国 著此次为第2次发行, 国际标准书号为:9787302490562,品牌为清华大学出版社(TSINGHUA UNIVERSITY PRESS), 这本书采用平装开本为16开,附件信息:未知,纸张采为胶版纸,全书共有296页字数45万 1000字,值得推荐的Python Book。

此书内容摘要

全书共13章:第1章介绍Python基本知识与概念,Python开发环境配置与使用,扩展库安装与使用;第2章讲解Python运算符与表达式以及内置函数的用法;第3章讲解列表、元组、字典、集合等序列结构的常用方法和基本操作;第4章讲解Python选择结构与循环结构的语法和应用;第5章讲解函数的定义与使用,不同类型的函数参数,变量的作用域以及lambda表达式;第6章讲解类的定义与实例化,多种不同类型的成员方法,特殊方法与运算符重载;第7章讲解字符串对象及其方法的应用;第8章讲解正则表达式语法以及正则表达式在Python中的应用;第9章讲解文件操作的基本知识与Python文件对象,文本文件内容读写,二进制文件操作与对象序列化;第10章讲解文件复制、移动、重命名、遍历等文件级操作以及目录操作有关知识;第11章讲解Python中多种不同形式的异常处理结构;第12章讲解Python对SQLite以及Access、MS SQL Server、MySQL等不同数据库的操作;第13章讲解数据分析、数据处理、数据可视化以及科学计算的有关知识。
本书完全面向Python 3.x,全部案例代码使用Python 3.5.x和Python 3.6.x编写,大部分内容也同样适用于Python 3.4.x。本书对Python内部工作原理进行一定程度的剖析,并适当介绍了Python代码优化和安全编程的有关知识,可以满足不同层次读者的需求。

关于此书作者

暂无.

编辑们的推荐

案例丰富、注释量大、实用性强。书中几乎每段代码都配有大量注释,读者能够在*短时间内理解代码的思路和要点,大幅度缩短阅读和学习时间,由浅入深,层层递进,平滑学习曲线。

Python程序设计基础(第2版)(计算机系列教材)图书的目录

目录

第1章第1章管中窥豹: Python概述1
1.1Python是这样一种语言1
1.2Python版本之争1
1.3Python编程规范与代码优化建议2
1.4Anaconda3开发环境的安装与使用3
1.5安装扩展库的几种方法5
1.6标准库与扩展库中对象的导入与使用6
1.6.1import模块名[as 别名]6
1.6.2from模块名import对象名[as别名]7
1.6.3from模块名 import *7
1.7__name__属性的作用8
本章小结8
习题9
第2章第2章万丈高楼平地起: 运算符、表达式与内置对象10
2.1Python常用内置对象10
2.1.1常量与变量11
2.1.2数字12
2.1.3字符串与字节串15
2.1.4列表、元组、字典、集合16
2.2Python运算符与表达式17
2.2.1算术运算符18
2.2.2关系运算符19
2.2.3成员测试运算符in与同一性测试运算符is20
2.2.4位运算符与集合运算符21
2.2.5逻辑运算符22
2.2.6矩阵乘法运算符@22
2.2.7补充说明23
2.3Python关键字简要说明23〖1〗〖2〗Python程序设计基础(第2版)〖1〗目录〖2〗2.4Python常用内置函数用法精要25
2.4.1类型转换与类型判断27
2.4.2最值与求和31
2.4.3基本输入输出32
2.4.4排序与逆序33
2.4.5枚举34
2.4.6map()、reduce()、filter()35
2.4.7range()37
2.4.8zip()38
2.4.9eval()39
2.5精彩案例赏析39
本章小结40
习题41
第3章第3章玄之又玄,众妙之门: 详解Python序列结构42
3.1列表: 打了激素的数组42
3.1.1列表创建与删除43
3.1.2列表元素访问44
3.1.3列表常用方法44
3.1.4列表对象支持的运算符50
3.1.5内置函数对列表的操作51
3.1.6列表推导式语法与应用案例52
3.1.7切片操作的强大功能56
3.2元组: 轻量级列表59
3.2.1元组创建与元素访问59
3.2.2元组与列表的异同点60
3.2.3生成器推导式61
3.3字典: 反映对应关系的映射类型62
3.3.1字典创建与删除62
3.3.2字典元素的访问63
3.3.3元素的添加、修改与删除64
3.3.4标准库collections中与字典有关的类65
3.4集合: 元素之间不允许重复66
3.4.1集合对象的创建与删除66
3.4.2集合操作与运算67
3.4.3集合应用案例69
3.5序列解包的多种形式和用法71
本章小结73
习题74
第4章第4章反者,道之动: 程序控制结构75
4.1条件表达式75
4.2选择结构77
4.2.1单分支选择结构77
4.2.2双分支选择结构78
4.2.3多分支选择结构79
4.2.4选择结构的嵌套80
4.3循环结构81
4.3.1for循环与while循环81
4.3.2break与continue语句82
4.3.3循环代码优化技巧83
4.4精彩案例赏析84
本章小结90
习题90
第5章第5章代码复用技术(一): 函数92
5.1函数定义与使用92
5.1.1基本语法92
5.1.2函数嵌套定义、可调用对象与修饰器94
5.1.3函数递归调用96
5.2函数参数97
5.2.1位置参数99
5.2.2默认值参数99
5.2.3关键参数101
5.2.4可变长度参数101
5.2.5传递参数时的序列解包102
5.3变量作用域103
5.4lambda表达式105
5.5生成器函数设计要点107
5.6精彩案例赏析109
本章小结126
习题127
第6章第6章代码复用技术(二): 面向对象程序设计128
6.1类的定义与使用128
6.2数据成员与成员方法129
6.2.1私有成员与公有成员129
6.2.2数据成员130
6.2.3成员方法、类方法、静态方法、抽象方法131
6.2.4属性133
6.2.5类与对象的动态性、混入机制136
6.3继承、多态137
6.3.1继承137
6.3.2多态139
6.4特殊方法与运算符重载139
6.5精彩案例赏析142
6.5.1自定义队列142
6.5.2自定义栈145
本章小结148
习题148
第7章第7章文本处理(一): 字符串150
7.1字符串编码格式简介151
7.2转义字符与原始字符串152
7.3字符串格式化153
7.3.1使用%符号进行格式化153
7.3.2使用format()方法进行字符串格式化154
7.3.3格式化的字符串常量155
7.3.4使用Template模板进行格式化156
7.4字符串常用操作156
7.4.1find()、rfind()、index()、rindex()、count()156
7.4.2split()、rsplit()、partition()、rpartition()157
7.4.3join()158
7.4.4lower()、upper()、capitalize()、title()、swapcase()159
7.4.5replace()、maketrans()、translate()160
7.4.6strip()、rstrip()、lstrip()161
7.4.7startswith()、endswith()161
7.4.8isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、isspace()、
isupper()、islower()162
7.4.9center()、ljust()、rjust()、zfill()163
7.4.10字符串对象支持的运算符163
7.4.11适用于字符串对象的内置函数165
7.4.12字符串对象的切片操作167
7.5字符串常量167
7.6中英文分词168
7.7汉字到拼音的转换169
7.8精彩案例赏析170
本章小结173
习题173
第8章第8章文本处理(二): 正则表达式174
8.1正则表达式语法174
8.1.1正则表达式基本语法174
8.1.2正则表达式扩展语法175
8.1.3正则表达式集锦176
8.2直接使用正则表达式模块re处理字符串177
8.3使用正则表达式对象处理字符串181
8.4match对象183
8.5精彩案例赏析185
本章小结186
习题187
第9章第9章数据永久化: 文件内容操作188
9.1文件操作基本知识189
9.1.1内置函数open()189
9.1.2文件对象属性与常用方法190
9.1.3上下文管理语句with191
9.2文本文件内容操作案例精选192
9.3二进制文件操作案例精选196
9.3.1使用pickle模块读写二进制文件196
9.3.2使用struct模块读写二进制文件198
9.3.3使用shelve模块操作二进制文件199
9.3.4其他常见类型二进制文件操作案例199
本章小结206
习题206
第10章第10章文件与文件夹操作207
10.1os模块207
10.2os.path模块209
10.3shutil模块211
10.4精彩案例赏析212
本章小结215
习题216
第11章第11章代码质量保障: 异常处理结构与单元测试217
11.1异常处理结构217
11.1.1异常的概念与表现形式217
11.1.2Python内置异常类层次结构218
11.1.3异常处理结构220
11.1.4断言与上下文管理语句225
11.2单元测试unittest225
本章小结228
习题229
第12章数据库应用开发230
12.1使用Python操作SQLite数据库230
12.1.1Connection对象231
12.1.2Cursor对象232
12.1.3Row对象235
12.2使用Python操作其他关系型数据库235
12.2.1操作Access数据库236
12.2.2操作MS SQL Server数据库237
12.2.3操作MySQL数据库238
12.3操作MongoDB数据库240
12.4精彩案例赏析242
本章小结244
习题245
第13章数据分析与科学计算可视化246
13.1扩展库numpy简介246
13.2科学计算扩展库scipy256
13.2.1数学、物理常用常数与单位模块constants256
13.2.2特殊函数模块special257
13.2.3信号处理模块signal257
13.2.4图像处理模块ndimage259
13.3扩展库pandas简介264
13.4统计分析标准库statistics用法简介269
13.5matplotlib272
13.5.1绘制正弦曲线272
13.5.2绘制散点图272
13.5.3绘制饼状图274
13.5.4绘制带有中文标签和图例的图275
13.5.5绘制图例标签中带有公式的图275
13.5.6使用pyplot绘制,多个图形单独显示276
13.5.7绘制三维参数曲线278
13.5.8绘制三维图形278
13.6创建词云280
本章小结282
习题282
附录附录精彩在继续283
附录AGUI开发283
附录B计算机图形学编程286
附录C图像编程289
附录D密码学编程292
附录E系统运维292
附录FWindows系统编程293
附录G软件分析与逆向工程295
参考文献297

部分内容试读

Python由Guido van Rossum于1989年底开始研制,第一个版本发行于1991年。Python推出不久就迅速得到了各行业人士的青睐,经过近30年的发展,已经渗透到计算机科学与技术、统计分析、逆向工程与软件分析、电子取证、图形图像处理、人工智能、游戏设计与策划、网站开发、移动终端开发、大数据分析与处理、深度学习、科学计算可视化、云计算、网络爬虫开发、系统运维、自然语言处理、密码学、电子电路设计、树莓派开发等专业和领域。目前,Python已经成为卡耐基梅隆大学、麻省理工学院、加州大学伯克利分校、哈佛大学等国外很多大学计算机专业或非计算机专业的程序设计入门教学语言,国内也有不少学校的多个专业陆续开设了Python程序设计课程。
Python连续多年在TIOBE网站的编程语言排行榜上排名前十位,并于2011年1月被TIOBE网站评为2010年度语言。自2015年之后,Python一直稳居TIOBE编程语言排行榜前五位。在2014年12月份IEEE Spectrum推出的编程语言排行榜中,Python排第5位,而在2017年7月份IEEE Spectrum推出的编程语言排行榜中,Python上升到了第1位。
Python是一门免费、开源的跨平台高级动态编程语言,支持命令式编程、函数式编程,完全支持面向对象程序设计,语法简洁清晰,并且拥有大量功能强大的标准库和扩展库以及众多狂热的支持者,可以帮助各领域的科研人员或策划师甚至管理人员快速实现和验证自己的思路与创意。Python用户可以把主要精力放在业务逻辑的设计与实现上,而不用过多考虑语言本身的细节,开发效率非常高,其精妙之处令人击节叹赏。
Python是一门快乐的语言,学习和使用Python也是一个快乐的过程。与C语言系列和Java等语言相比,Python更加容易学习和使用,但这并不意味着可以非常轻松愉快地掌握Python。用户熟练掌握和运用Python仍需要通过大量的练习来锻炼自己的思维和熟悉Python编程模式,同时还需要经常关注Python社区优秀的代码以及各种扩展库的最新动态。当然,如果能够适当了解Python标准库以及扩展库的内部工作原理,对于编写正确而优雅的Python程序无疑是有很大帮助的。
Python是一门优雅的语言。Python语法简洁清晰,并且提供了大量的内置对象和内置函数,编程模式非常符合人类的思维方式和习惯。在有些编程语言中需要编写大量代码才能实现的功能,在Python中仅需要调用内置函数或内置对象的方法即可实现。如果读者已有其他程序设计语言的基础,那么在学习和使用Python时,一定不要把其他语言的编程习惯和风格带到Python中来,因为这不仅可能会使得代码变得非常冗余、烦琐,还可能会严重影响代码的运行效率。应该尽量尝试从最自然、最简洁的角度出发去思考和解决问题,这样才能写出更加优雅、更加纯正、更加Pythonic的代码。〖1〗〖2〗Python程序设计基础(第2版)〖1〗前言〖2〗本书内容组织
对于Python程序员来说,能够熟练运用各种扩展库毫无疑问是非常重要的,使用优秀、成熟的扩展库可以帮助我们快速实现自己的业务逻辑和创意。但是也必须清楚地认识到,Python内功是非常重要的,Python语言基础知识和基本数据结构的熟练掌握是理解和运用其他扩展库的必备条件之一。所以,本书前11章把重点和主要篇幅放在了Python编程基础知识的介绍上,通过大量案例介绍Python在实际开发中的应用,然后在最后两章介绍数据库编程和Python在数据分析、处理与科学计算可视化等领域的应用。关于其他应用领域的扩展库可以参考本书最后的附录,并结合自己的专业领域查阅相关文档。全书共13章,主要内容组织如下。
第1章管中窥豹: Python概述。介绍Python语言的特点,Python程序文件名,扩展库的管理与使用,Python代码编写规范和优化建议。
第2章万丈高楼平地起: 运算符、表达式与内置对象。讲解Python对象模型,数字、字符串、列表、元组、字典、集合等基本数据类型,运算符与表达式,内置函数。
第3章玄之又玄,众妙之门: 详解Python序列结构。讲解列表、元组、字典、集合等序列的常用方法和基本操作,切片操作,列表推导式,元组与生成器推导式,序列解包,字典、集合基本操作和常用方法。
第4章反者,道之动: 程序控制结构。讲解Python选择结构,for循环与while循环,带有else子句的循环结构,break与continue语句,选择结构与循环结构的综合运用。
第5章代码复用技术(一): 函数。讲解函数的定义与使用,普通位置参数、关键参数、默认值参数、长度可变参数等不同参数类型,全局变量与局部变量,参数传递时的序列解包,return语句,lambda表达式。
第6章代码复用技术(二): 面向对象程序设计。讲解类的定义与继承,self与cls参数,类成员与实例成员,私有成员与公有成员,特殊方法与运算符重载。
第7章文本处理(一): 字符串。讲解字符串编码格式,字符串格式化、替换、分割、连接、排版等基本操作方法。
第8章文本处理(二): 正则表达式。讲解正则表达式语法、正则表达式对象、子模式与match对象,以及Python正则表达式模块re的应用。
第9章数据永久化: 文件内容操作。讲解文件操作基本知识与Python文件对象,文本文件内容读写,二进制文件内容读写与对象序列化,Word、Excel等常见二进制文件的内容读写。
第10章文件与文件夹操作。讲解文件复制、移动、重命名、遍历等文件级操作以及目录操作有关知识。
第11章代码质量保障: 异常处理结构与单元测试。讲解Python异常类层次结构与自定义异常类,多种不同形式的异常处理结构,以及单元测试。
第12章数据库应用开发。讲解SQLite数据库的基本特点与用法,以及Python对SQLite数据库和Access、MySQL、MS SQL Server等数据库的操作方法。
第13章数据分析与科学计算可视化。讲解Python标准库statistics以及numpy、scipy、pandas、matplotlib等扩展库的用法,讲解数据处理、数据分析、数据可视化以及科学计算的有关内容。
本书特色
内容与Python最新版本同步。本书完全面向Python 3.x,全部案例代码使用Python 3.5.x和Python 3.6.x编写,大部分内容同样适用于Python 3.4.x。
信息量大、知识点密集。全书没有多余的文字和软件安装截图,充分利用宝贵的篇幅来介绍和讲解尽可能多的知识点,绝对物超所值。本书作者具有15年程序设计教学经验,讲授过汇编语言、C/C++/C#、Java、PHP、Python等多门程序设计语言,并编写过大量的应用程序。在本书内容的组织和安排上,结合了作者多年教学与开发过程中积累的许多案例,并巧妙地糅合进了相应的章节。
案例丰富,实用性强,注释量大。精选多个领域中的经典案例,并且每段代码都配有大量注释,大幅度缩短了读者理解代码所需要的时间。
语言精练,代码优雅。使用最简练的语言和代码介绍Python语法和应用,完美诠释Pythonic真谛。
深度与广度兼顾。本书对Python内部工作原理进行一定程序的剖析,并适当介绍Python代码优化和安全编程的有关知识,可以满足不同层次读者的需要,读者对书中内容每多读一遍都会有新的收获和体会。
本书适用读者
本书可以作为(但不限于):
�r 会计、经济、金融、心理学、统计、管理、人文社科以及其他非计算机专业本科或专科的程序设计教材。如果作为本科非计算机专业程序设计语言公共课或选修课教材,建议采用64学时或48学时边讲边练的教学模式。
�r 具有一定Python基础的读者进阶学习资料。
�r 打算利用业余时间学习一门快乐的程序设计语言并编写几个小程序来娱乐的读者首选学习资料。
�r 少数对编程具有浓厚兴趣和天赋的中学生课外阅读资料。
教学资源
本书提供全套教学课件、源代码、课后习题答案与分析、考试题库、教学视频、教案以及授课计划和学时分配表,需要配套资源,可以登录清华大学出版社官方网站(www.tup.com.cn)下载或与作者联系索取,作者的微信公众号是“Python小屋”,电子邮箱地址是dongfuguo2005@126.com。
由于时间仓促,作者水平有限,书中难免存在疏漏之处,还请同行指正并通过作者联系方式进行反馈,作者将不定期在微信公众号更新勘误并实名感谢。
感谢
首先感谢父母的养育之恩,在当年那么艰苦的条件下还坚决支持我读书,而没有让我像其他同龄的孩子一样辍学。感谢姐姐、姐夫多年来对我的爱护以及在老家对父母的照顾,感谢善良的弟弟、弟媳在老家对父母的照顾,正是有了你们,我才能在远离家乡的城市安心工作。感谢我的妻子在生活中对我的大力支持,也感谢懂事的女儿在我工作时能够在旁边安静地读书而尽量不打扰我,并在定稿前和妈妈一起帮我阅读全书并检查出了几个错别字。
感谢每一位读者,感谢您在茫茫书海中选择了这本书,衷心祝愿您能够从本书中受益,学到您需要的知识!同时也期待每一位读者的热心反馈,随时欢迎指出书中的不足!
本书在编写出版过程中得到清华大学出版社的大力支持和帮助,在此表示衷心的感谢。

董付国于山东烟台
2017年10月

关于此书评价

暂无.

书摘内容

第3章第3章玄之又玄,众妙之门: 详解Python序列结构
Python中常用的序列结构有列表、元组、字典、字符串、集合等(虽然有人并不主张把字典和集合看作序列,但这真的不重要)。从是否有序这个角度看,Python序列可以分为有序序列和无序序列;从是否可变来看,Python序列则可以分为可变序列和不可变序列两大类,如图3��1所示。另外,生成器对象和range、map、enumerate、filter、zip等对象的某些用法也类似于序列,尽管这些对象更大的特点是惰性求值。列表、元组、字符串等有序序列以及range对象均支持双向索引,第一个元素下标为0,第二个元素下标为1,以此类推;如果使用负数作为索引,则最后一个元素下标为-1,倒数第二个元素下标为-2,以此类推。可以使用负整数作为索引是Python有序序列的一大特色,熟练掌握和运用可以大幅度提高开发效率。
图3��1Python序列分类示意图
3.1列表: 打了激素的数组
列表(list)是最重要的Python内置对象之一,是包含若干元素的有序连续内存空间。当列表增加或删除元素时,列表对象自动进行内存的扩展或收缩,从而保证相邻元素之间没有缝隙。Python列表的这个内存自动管理功能可以大幅度减少程序员的负担,但插入和删除非尾部元素时涉及列表中大量元素的移动,会严重影响效率。另外,在非尾部位置插入和删除元素时会改变该位置后面的元素在列表中的索引,这对于某些操作可能会导致意外的错误结果。所以,除非确实有必要,否则应尽量从列表尾部进行元素的追加与删除操作。〖1〗〖2〗Python程序设计基础(第2版)〖1〗第3章玄之又玄,众妙之门: 详解Python序列结构〖2〗在形式上,列表的所有元素放在一对方括号[]中,相邻元素之间使用逗号分隔。在Python中,同一个列表中元素的数据类型可以各不相同,可以同时包含整数、实数、字符串等基本类型的元素,也可以包含列表、元组、字典、集合、函数以及其他任意对象。如果只有一对方括号而没有任何元素则表示空列表。下面几个都是合法的列表对象: \[10,20,30,40\]
\['crunchy frog','ram bladder','lark vomit'\]
\['spam',2.0,5,\[10,20\]\]
\[\['file1',200,7\],\['file2',260,9\]\]
\[{3},{5:6},(1,2,3)\]Python采用基于值的自动内存管理模式,变量并不直接存储值,而是存储值的引用或内存地址,这也是python中变量可以随时改变类型的重要原因。同理,Python列表中的元素也是值的引用,所以列表中各元素可以是不同类型的数据。
需要注意的是,列表的功能虽然非常强大,但是负担也比较重,开销较大,在实际开发中,最好根据实际的问题选择一种合适的数据类型,要尽量避免过多使用列表。
3.1.1列表创建与删除
使用“=”直接将一个列表赋值给变量即可创建列表对象。>>> a_list= \['a','b','mpilgrim','z','example'\]
>>> a_list= \[\] #创建空列表也可以使用list()函数把元组、range对象、字符串、字典、集合或其他可迭代对象转换为列表。需要注意的是,把字典转换为列表时默认是将字典的“键”转换为列表,而不是把字典的元素转换为列表,如果想把字典的元素转换为列表,需要使用字典对象的items()方法明确说明,当然也可以使用values()来明确说明要把字典的“值”转换为列表。>>> list((3,5,7,9,11)) #将元组转换为列表
\[3,5,7,9,11\]
>>> list(range(1,10,2))#将range对象转换为列表

Python程序设计基础(第2版)(计算机系列教材)最新最全的试读、书评、目录、简介信息由Python中文网整理提供。