内容简介
《玩转Python轻松过二级》共12章,除了介绍Python编码规范,运算符、表达式与内置对象,Python序列结构,程序控制结构,函数,面向对象程序设计,字符串,正则表达式,文件内容操作,异常处理结构,以及SQLite数据库应用开发和tkinter编程精彩案例等知识之外,更重要的是提供了62道例题和730道练习题,尤其适合备考全国计算机等级考试二级Python模块的考生,以及需要大量练习题来巩固所学知识的Python爱好者。
《玩转Python轻松过二级》全部代码适用于Python3.5、Python3.6以及更高版本。
目录
目录
第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别名]6
1.6.3from模块名import7
本章小结7
习题8
第2章运算符、表达式与内置对象9
2.1Python常用内置对象9
2.1.1常量与变量10
2.1.2数字11
2.1.3字符串与字节串12
2.1.4列表、元组、字典、集合13
2.2Python运算符与表达式14
2.2.1算术运算符15
2.2.2关系运算符17
2.2.3成员测试运算符in与同一性测试运算符is18
2.2.4位运算符与集合运算符18
2.2.5逻辑运算符19
2.2.6补充说明20
2.3Python关键字简要说明20
2.4Python常用内置函数用法精要22
2.4.1类型转换与类型判断24
2.4.2最值与求和27
2.4.3基本输入输出29
〖1〗〖2〗玩转Python轻松过二级〖1〗目录〖2〗2.4.4排序与逆序30
2.4.5枚举30
2.4.6map()、reduce()、filter()31
2.4.7range()33
2.4.8zip()33
2.4.9eval()34
2.5精彩案例赏析34
本章小结35
习题36
第3章详解Python序列结构39
3.1列表:打了激素的数组39
3.1.1列表创建与删除40
3.1.2列表元素访问41
3.1.3列表常用方法41
3.1.4列表对象支持的运算符45
3.1.5内置函数对列表的操作46
3.1.6列表推导式语法与应用案例47
3.1.7切片操作的强大功能51
3.2元组:轻量级列表53
3.2.1元组创建与元素访问53
3.2.2元组与列表的异同点54
3.2.3生成器推导式55
3.3字典:反映对应关系的映射类型56
3.3.1字典创建与删除56
3.3.2字典元素的访问56
3.3.3元素的添加、修改与删除58
3.4集合:元素之间不允许重复59
3.4.1集合对象的创建与删除59
3.4.2集合操作与运算60
3.4.3集合应用案例61
3.5序列解包的多种形式和用法64
本章小结65
习题65
第4章程序控制结构76
4.1条件表达式76
4.2选择结构78
4.2.1单分支选择结构78
4.2.2双分支选择结构79
4.2.3多分支选择结构80
4.2.4选择结构的嵌套81
4.3循环结构82
4.3.1for循环与while循环82
4.3.2break与continue语句83
4.4精彩案例赏析84
本章小结87
习题87
第5章函数90
5.1函数定义与使用90
5.1.1基本语法90
5.1.2函数嵌套定义、可调用对象与修饰器92
5.1.3函数递归调用94
5.2函数参数95
5.2.1位置参数97
5.2.2默认值参数97
5.2.3关键参数99
5.2.4可变长度参数99
5.2.5传递参数时的序列解包100
5.3变量作用域101
5.4lambda表达式103
5.5精彩案例赏析104
本章小结117
习题118
第6章面向对象程序设计122
6.1类的定义与使用122
6.2数据成员与成员方法123
6.2.1私有成员与公有成员123
6.2.2数据成员124
6.2.3成员方法、类方法、静态方法125
6.2.4属性127
6.3继承、多态129
6.3.1继承129
6.3.2多态130
6.4特殊方法与运算符重载131
6.5精彩案例赏析133
6.5.1自定义队列133
6.5.2自定义栈136
本章小结139
习题139
第7章字符串142
7.1字符串编码格式简介143
7.2转义字符与原始字符串144
7.3字符串格式化145
7.3.1使用%符号进行格式化145
7.3.2使用format()方法进行字符串格式化146
7.3.3格式化的字符串常量147
7.4字符串常用操作147
7.4.1find()、rfind()、index()、rindex()、count()147
7.4.2split()、rsplit()、partition()、rpartition()148
7.4.3join()150
7.4.4lower()、upper()、capitalize()、title()、swapcase()150
7.4.5replace()、maketrans()、translate()150
7.4.6strip()、rstrip()、lstrip()151
7.4.7startswith()、endswith()152
7.4.8isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、
isspace()、isupper()、islower()152
7.4.9center()、ljust()、rjust()、zfill()153
7.4.10字符串对象支持的运算符153
7.4.11适用于字符串对象的内置函数155
7.4.12字符串对象的切片操作156
7.5字符串常量156
7.6中英文分词157
7.7汉字到拼音的转换158
7.8精彩案例赏析158
本章小结161
习题161
第8章正则表达式166
8.1正则表达式语法166
8.1.1正则表达式基本语法166
8.1.2正则表达式扩展语法167
8.1.3正则表达式集锦168
8.2直接使用正则表达式模块re处理字符串169
8.3match对象173
8.4精彩案例赏析173
本章小结175
习题175
第9章文件内容操作177
9.1文件操作基本知识178
9.1.1内置函数open()178
9.1.2文件对象属性与常用方法179
9.1.3上下文管理语句with180
9.2文本文件内容操作案例精选180
9.3二进制文件操作案例精选182
9.3.1使用pickle模块读写二进制文件182
9.3.2使用shelve模块操作二进制文件183
9.3.3其他常见类型二进制文件操作案例184
本章小结187
习题187
第10章异常处理结构189
10.1异常的概念与表现形式189
10.2异常处理结构190
10.2.1try…except…190
10.2.2try…except…else…191
10.2.3try…except…finally…191
10.2.4可以捕捉多种异常的异常处理结构193
10.2.5同时包含else子句、finally子句和多个except子句的异常
处理结构194
10.3断言与上下文管理语句194
本章小结195
习题195
第11章SQLite数据库应用开发197
11.1使用Python操作SQLite数据库197
11.1.1Connection对象198
11.1.2Cursor对象198
11.2精彩案例赏析201
本章小结204
习题204
第12章tkinter编程精彩案例205
12.1用户登录界面205
12.2选择类组件应用207
12.3简单文本编辑器210
12.4简单画图程序214
12.5电子时钟218
12.6简单动画220
12.7多窗口编程222
12.8倒计时按钮223
12.9简易计算器225
习题227
习题答案228
附录A复习大纲与建议247
参考文献250
精彩书摘
第5章第5章函数
在软件开发过程中,经常有很多操作是完全相同或者是非常相似的,仅仅是要处理的数据不同而已,因此经常会在不同的代码位置多次执行相似甚至完全相同的代码块。很显然,从软件设计和代码复用的角度来讲,直接将代码块复制到多个相应的位置然后进行简单修改绝对不是一个好主意。虽然这样可以使得多份复制的代码可以彼此独立地进行修改,但这样不仅增加了代码量,也增加了代码阅读、理解和维护的难度,为代码测试和纠错带来很大的困难。一旦被复制的代码块将来某天被发现存在问题而需要修改,必须对所有的复制都做同样的正确修改,这在实际中是很难完成的一项任务。更糟糕的情况是,由于代码量的大幅度增加,导致代码之间的关系更加复杂,很可能在修补旧漏洞的同时又引入了新漏洞,维护成本大幅度增加。因此,应尽量减少使用直接复制代码的方式来实现复用。解决这个问题的有效方法是设计函数(function)和类(class)。本章介绍函数的设计与使用,第6章介绍面向对象程序设计。
将可能需要反复执行的代码封装为函数,然后在需要该功能的地方调用封装好的函数,不仅可以实现代码的复用,更重要的是可以保证代码的一致性,只需要修改该函数的代码则所有调用位置均得到体现。同时,把大任务拆分成多个函数也是分治法的经典应用,复杂问题简单化,使得软件开发像搭积木一样简单。当然,在实际开发中,需要对函数进行良好的设计和优化才能充分发挥其优势,并不是使用了函数就万事大吉了。在编写函数时,有很多原则需要参考和遵守。例如,不要在同一个函数中执行太多的功能,尽量只让其完成一个高度相关且大小合适的功能,提高模块的内聚性。另外,尽量减少不同函数之间的隐式耦合。例如,减少全局变量的使用,使得函数之间仅通过调用和参数传递来显式体现其相互关系。再就是设计函数时应尽量减少副作用,只实现指定的功能就可以了,不要做多余的事情。最后,在实际项目开发中,往往会把一些通用的函数封装到一个模块中,并把这个通用模块文件放到顶层文件夹中,这样更方便管理。
5.1函数定义与使用〖*8/9〗5.1.1基本语法在Python中,定义函数的语法如下:def函数名(\[参数列表\]):〖1〗〖2〗玩转Python轻松过二级〖1〗第5章函数〖2〗'''注释'''
函数体在Python中使用def关键字来定义函数,然后是一个空格和函数名称,接下来是一对括号,在括号内是形式参数列表,如果有多个参数则使用逗号分隔开,括号之后是一个冒号和换行,最后是注释和函数体代码。定义函数时在语法上需要注意的问题主要有:①函数形参不需要声明其类型,也不需要指定函数的返回值类型;②即使该函数不需要接收任何参数,也必须保留一对空的括号;③括号后面的冒号必不可少;④函数体相对于def关键字必须保持一定的空格缩进。
下面的函数用来计算斐波那契数列中小于参数n的所有值:deffib(n):#定义函数,括号里的n是形参
'''acceptanintegern.
returnthenumberslessthanninFibonaccisequence.'''
a,b=1,1
whilea