编辑推荐
案例丰富、注释量大、实用性强。书中几乎每段代码都配有大量注释,读者能够在*短时间内理解代码的思路和要点,大幅度缩短阅读和学习时间,由浅入深,层层递进,平滑学习曲线。
内容简介
全书共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代码优化和安全编程的有关知识,可以满足不同层次读者的需求。
目录
目录
第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
精彩书摘
第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由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中来,因为这不仅可能会使得代码变得非常冗余
Python程序设计基础(第2版)(计算机系列教材) 下载 mobi epub pdf txt 电子书 格式