大数据技术应用职业技能竞赛理论复习资料.docx
2022年深圳技能大赛一大数据技术应用职业技能竞赛理论复习资料注意本文提供的理论复习资料包含Python编程基础、PythOn数据分析、PythOll可视化、PythOll数据采集和Hadoop大数据基础等大部分相关知识。1PythOIl编程基础1、认识PythonPython是一种结合解释性、编译性、互动性和面向对象的高层次计算机程序语言,也是一种功能强大而完善的通用型语言,已经具有二十多年的发展历史,成熟且稳定。PythOn具有非常简洁而清晰的语法特点,因为它的设计指导思想是,对于一个特定的问题,应该用最好的方法来解决。Python具备垃圾回收功能,能够自动管理内存的使用,常被当作脚本语言,用于处理系统管理任务和网络程序编写;同时支持命令式程序设计、面向对象程序设计、函数式编程、泛型编程多种编程范式,也非常适合完成各种高级任务。2、Python特性PythOn语言能广泛用于多种编程领域,无论对于初学者,还是对于在科学计算领域具备一定经验的工作者,它都极具吸引力。其关键特征包括简单、易学、免费、开源、广泛的标准库、互动模式、可移植、可扩展、可嵌入和具备数据库接口。3、输入与输出在Python语言中,实现数据输出的方式有两种:一种是使用Prim函数,其语法结构为Print(expressions);另一种是直接使用变量名来查看该变量的原始值。在PythOn语言中,可以通过input函数从键盘输入数据,其语法结构为input(vprompt)。4、代码注释单行注释:以井号(#)开头,注释不会被机器编译。多行注释:在实际应用常会有多行注释的需求,同样也可以使用井号对多行代码进行注释,另一种简便方法是使用3个单引号或者是3个双引号将注释内容括起来。在使用引号进行多行注释时,需要保证前后使用的引号类型保持一致。5、多行语句多行语句可以有两种理解:一条语句多行;一行多条语句。一条语句多行的情况一般是语句太长,使用反斜杠()可以实现一条长语句的换行,也不会被机器识别成多条语句。但在口、()括号里面的多行语句在换行时是不需要使用反斜杠的。一行多条语句,通常在短语句中应用得比较广泛,使用分号(;)可对多条短语句实现隔离。a=' Apple Banana Orange, a'App1eBananaOrange,a=,Apple,'Banana*,a=1:b=2;c=3,Orange*print(a,b,c)a123,Apple,,Banana*,,Oranget6、缩进Python最具有特色得就是以缩进得方式来标识代码块,不再需要使用大括号,代码看起来会更加简洁明朗。同一个代码块得语句必须保证相同得缩进空格数,否则将会出错,至于缩进得空格数,PythOn并没有硬性要求,只需保证空格数一致即可。7、命名标识符标识符在机器语言中是一个被允许作为名字得有效字符串。PythOn中的标识符主要用在变量、函数、类、模块、对象等命名中。PythOn对标识符的规定如下。(1)标识符可以由字母、数字和下划线组成。(2)标识符不能以数字开头。以下划线开头的标识符具有特殊的意义,使用时需特别注意。以单下划线开头的标识符代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“fromXXXimport*”导入。以双下划线开头的标识符代表类的私有成员。以双下划线开头和结尾的标识符是Python特殊方法专用的标识。(3)标识符字母区分大小写。(4)标识符禁止使用Python中的保留字。可使用iskeyword函数确认字符串是否为保留字,使用kwlist函数可以查看所有保留字。8、变量在PythOn中,变量不需要提前声明,创建时直接对其赋值即可,变量类型由赋给变量的值决定。创建一个变量时,在机器的内存中,系统会自动给该变量分配一块内容,用于存放变量值。当令变量y等于变量X时(y=x),其实是一种内存地址的传递,变量y获得的是存储变量X值的内存地址,所以当X变量改变时,变量y并不会发生改变。而且变量X的值改变时,系统会重新分配另一块内存空间存放新的变量值。9、变量值变量值是赋给变量的数据,Python中有6个标准的数据类型,分别是数字(Number)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)、集合(Set)o其中,列表、元组、字典、集合属于复合数据类型。10、数值型数据PythOn3支持的数值型数据类型有int、float、bool,complex,int类型指整数数值,Python3中的整数类型int表示长整型;float类型指既有整数又有小数部分的数据类型;bool类型只有Tnle(真)和FalSe(假)两种取值,因为bool继承了ini类型,即在这两种类型中,Tnle可以等价于数值1,FaISe可以等价于数值0,并且可以直接使用bool值进行数学运算;COmPIeX类型由实数部分和虚数部分构成,PythOn中的结构类型,实数和虚数部分都是浮点数。在PythOn中可以实现数值型数据类型的转换,使用内置函数有int、float、boolcomplexo浮点数转成整数的过程中,只是简单地将小数部分剔除,保留整数部分,ini空的结果为0;布尔型转整数时,bool值True被转为整数1,FalSe被转为整数0;复数无法转成整型。11、字符型数据相对比数值型数据,字符型数据可以理解为一种文本,在语言领域的应用更加广泛,PythOn提供了几种方式去表达字符串,分别是使用单引号(')、双引号(")和三引号(“或者)。单引号标识字符串的方法是将字符串用单引号括起来,标准Python库允许字符串中包含字母、数字及各种符号。Python3的默认编号为UTF-8,意味着可以在字符串中任意使用中文。双引号在字符串中的使用于单引号的用法完全相同,需要注意的是,单引号和双引号不能混用。三引号相比于单引号或双引号,自身有一个特殊的功能,它能够标识一个多行的字符串,如一段话的换行、缩进等格式都会原封不动地保留。三引号是格式化记录一段话的好帮手,但前后引号要保持一致,不能混用。12、字符转义反斜杠()不仅可以在字符串中担当特殊换行的角色,还可以是字符串的转义字符。单引号转义(')是单引号只是纯粹的单引号,不具备其他作用,比较特殊的是,用双引号标识一个包含单引号的字符串时不需要转义符,但如果其中包含一个双引号,则需要转义(")。另外,反斜杠可以用来转义它本身()。此外,Python中还可以通过给字符串加上一个前缀r或R来指定原始字符串,如反斜杠开头的特征字符串('D:namepython'),可用r指定原始字符串。13、字符串索引Python对于字符串的操作还是比较灵活的,包括字符提取、字符串切片、拼接等。字符串索引分为正索引和负索引,通常说的索引就是指正索引,在PythOn中,索引时从0开始的,也就是第一个字符的索引是0,第二个字符索引是I,以此类推。而负索引是从右到左去标记字符,然后加上一个负号,负索引的第一个值是-1,不是-0,如果负索引的第一个值是0,那么会导致。索引指向两个值,这种情况是不允许的。14、字符串基本操作字符提取PythOn中只需在变量后面使用方括号()将需要提取的字符索引括起来,就可以提取指定位置的字符。15、字符串基本操作一字符串切片通过截取字符串的片段,形成子字符串。字符串切片的方式如S代表字符串,i表示截取字符串的开始索引,j表结束索引。需要注意的是,在截取子字符串的适合将包含起始字符,但不包含结束字符,这是一个半开闭区间。Python在字符串切片的功能上有很好的默认值,省略第1个索引,默认为0;省略第2个索引默认为切片字符串的长度。注意,在Python中,字符串是不可以更改的,所以,如果给指定位置的字符重新赋值,则会报错。16、字符串基本操作一字符串拼接如果需修改其中的一小部分字符串,可以使用字符串拼接。字符拼接时,可以只有加号(+)将两个字符串拼接起来,使用星号(*)表示重复。另外,相邻的两个字符串文本是会自动拼接在一起。运用这个思路则可对字符串部分字符进行修改。17、算术运算符算术运算符是对操作数进行运算的一系列特殊符号,能够满足一般的运算操作需求。运算符描述+相加两个对象-得到一个负数或是一个数减去另一个数*两数相乘或是返回一个被重复若干次的字符串/X除以y,做除法%取模,返回除法的余数累,返回X的y次方/取整除,返回商的整数部分18、比较运算符比较运算符一般用于数值的比较,也可以是字符的比较,当两个数值比较结果是正确时,返回TrUe,否则返回Falser在PythOn中,字符是符合ASCIl编码的,每个字符都有属于自己的编码,字符的比较本质是字符的ASCn编码的比较。运算符描述=等于,比较对象是否相等I=不等于,比较两个对象是否不相等>大于,返回X是否大于y<小于,返回X是否小于y>=大于等于,返回X是否大于等于y<=小于等于,返回X是否小于等于y19、赋值运算符赋值运算符用于对变量的赋值和更新,Python除了简单的赋值运算符外,还有一类特殊的赋值运算符,比如加法赋值运算符、减法赋值运算符等。除了简单的赋值运算符,其他都属于特殊赋值运算符。运算符描述=简单的赋值运算符+=加法赋值运算符,a+=b等效于a=a+b-=减法赋值运算符,a-=b等效于a=a-b=乘法赋值运算符,a*=b等效于a=a*b/=除法赋值运算符,a=b等效于a=ab%=取模赋值运算符,a%=b等效于a=a%b*=耗赋值运算符,a*=b等效于a=a*b/=取整除赋值运算符,a=b等效于a=ab20、按位运算符通常,数字都是使用十进制,按位运算符会自动将输入的十进制数转化为二进制数,再进行相应的运算。运算符描述&按位与运算符:参与运算的两个值,如果相应位为1,则该位的结果为1,否则为0I按位或运算符:只有对应的两个二进位有一个为1,结果就为1按位异或运算符:当两对应的二进位相异时,结果为1按位取反运算符:对数据的每个二进制位取反,即把1变成0,把。变成1«左移动运算符:运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0»右移动运算符:把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数21、逻辑运算符运算符描述and布尔“与",xandy,如果X为FaISe,返回FalSe;否则返回y的计算值or布尔“或“,xory,如果X为TrUe,它返回TrUe;否则返回y的计算值not布尔"非",not(x),如果X为Ture,返回False;如果X为False,返回TrUe22、成员运算符成员运算符的作用时判断某指定值是否存在于某一序列中,包括字符串、列表或元组。运算符描述in如果在指定的序列中找到值,返回Tnle,否则返回FalSenotin如果在指定的序列中没有找到值,返回TrUe,否则返回FalSe23、身份运算符身份运算符用于比较两个对象的内存地址。运算符描述is用于判断两个标识符是不是引用自一个对象notis用于判断两个标识符是不是引用自不同对象24、运算符优先级一个表达式往往不只包含一个运算符,当一个表达式存在多个运算符时,运算符会按照优先级运算,处于同一优先级的运算符则从左到右依次运算。运算符描述*指数,最高优先级一+按位翻转、一元加号和减号(最后两个的方法名为+和-)*/%/乘、除、取模和取整数+-加法减法»«右移、左移运算符&按位与运算符按位或运算符<=<>>=比较运算符<>=!=等于运算符=%=/=/=-=+=*=*=赋值运算符isisnot身份运算符innotin成员运算符notorand逻辑运算符25、数据结构类型Python中数据结构是根据某种方式将数据元素组合起来形成的一个数据元素集合,其中包含序列(列表和元组)、映射(字典)以及集合3种基本的数据结构类型。序列类型:序列是数据结构对象的有序排列,数据结构对象作为序列的元素都会被分配一个位置编号(也称为索引),序列就相当于数学中数列的概念。PythOn中的序列类型包括字符串、列表、元组、UniCode字符串、buffer对象、Xrange对象等数据结构,其中字符串、列表和元组最为常用。映射类型:映射类型就是存储了对象与对象之间的映射关系的数据结构类型,PythOn中唯一的映射类型数据结构是字典,字典中的每个元素都存在相应的名称(称为键)与之一一对应。字典相当于带有各自名称的元素组成的集合。与序列不同的是,字典中的元素没有排列顺序。集合类型:集合当中的元素不能重复出现,即集合中的元素是相对唯一的,并且元素不存在排列顺序。由此可见,Python中的集合概念相当于数学中的集合概念。集合类型包括可变集合与不可变集合。26、可变数据类型通过可变数据类型,可以直接对数据结构对象的内容进行修改,即可以对数据结构对象进行元素的赋值修改、删除或增加等操作。由于可变数据类型对象能直接对自身进行修改,所以修改后的新结果仍与原对象引用同一个id地址值,即由始至终只对同一个对象进行了修改。Python中比较重要的可变数据类型包括列表、字典、可变集合等。27、不可变数据类型与可变数据类型不同,不可变数据类型不能对数据结构对象的内容进行修改操作,不可对对象中的元素进行增加、删除和赋值修改。若需要对对象进行内容修改,则需对其变量名进行重新赋值,赋值操作会把变量名指向一个新对象,新旧对象两者引用两个不同的id地址值。常用的不可变数据类型包括数字、字符串、元组、不可变集合等。28、列表列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型,列表都可以进行的操作包括索引、切片、力口、乘、检查成员。常用的创建列表的方法有两种,一种是使用方括号()进行创建,另一种是使用IiSI函数进行创建。列表索引与字符串的索引一样,列表索引从0开始,第二个索引是1,依此类推。通过索引列表可以进行截取、组合等操作,具体的索引格式为SeqUenceIameindex,具体的切片格式为SeqUenceIamesiart:end:siep,即序列对象起始元素:终止元素:步长值,注意切片操作的区间是左闭右开区间,因此不包含终止元素。使用列表方法叩Pend()、extend。和insert。可向列表对象中添加元素。append。方法可在列表尾部追加元素,该方法每次只能追加一个元素;extend。能够将另一个列表的元素添加至列表末尾,相当于两个列表进行拼接,也可以通过加号进行拼接;insert。能向列表中添加一个元素,不同的是,它可指定位置添加。使用del>pop、remove语句可删除列表元素。在Python中,使用del语句可以将列表中提取出来的元素删除;PoP语句是利用元素位置对元素进行删除操作;remove语句可以将指定元素进行删除,删除的元素是列表中第一次出现的元素。列表是可变的,修改元素最简单的方法是提取该元素并进行赋值操作。列表对+和*的操作符与字符串相似。十号用于组合列表,*号用于重复列表。Pytholl表达式结果描述len(l,2,3)3长度1,2,3+4,5,61,2,3,4,5,6组合'Hi!'*4'Hi!,Hi!'Hi!'Hi!'重复3in1,2,3True元素是否存在于列表中forXinI.2,3:print(x,end="")123迭代Python列表函数如下。函数描述Ien(Iist)列表元素个数max(list)返回列表元素最大值min(list)返回列表元素最小值list(seq)将元组转换为列表Python列表方法如下。方法描述list.append(obj)在列表末尾添加新的对象list.count(obj)统计某个元素在列表中出现的次数list.exiend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)list.index(obj)从列表中找出某个值第一个匹配项的索引位置list.insert(index,Obj)将对象插入列表list.pop(index=-l)移除列表中的一个元素(默认最后一个元素),并且返回该元素的值list.remove(obj)移除列表中某个值的第一个匹配项list.reverse()反向列表中元素list.sort(key=None,reverse=False)对原列表进行排序list.clear()清空列表IistxopyO复制列表29、元组Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号(),列表使用方括号口。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。元组也可以使用tuple函数创建,该函数能将其他数据结构对象转换成元组类型,注意tuple函数传入元组需要加上小括号。元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。元组是不可变的,类似于对列表元素的增添、删除、修改等操作都不能作用在元组对象上。但是元素属于序列类型数据结构,因此可以在元组对象上进行元素索引访问提取和切片操作。元组中的元素值是不允许修改的,但可以对元组进行连接组合,直接通过加号即可连接元组的元素。元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组。与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着可以组合和复制,运算后会生成一个新元组。Python表达式结果描述len(l,2,3)3计算元素个数(1,2,3)+(4,5,6)(1,2,3,4,5,6)连接('Hi!',)*4('Hi!','Hi!'Hi!','Hi!')复制3in(1,2,3)True元素是否存在forXin(1,2,3):print(x,end=",')123迭代Python元组包含的内置函数如下。函数描述Ien(Iuple)计算元组元素个数max(tuple)返回元组元素最大值min(tuple)返回元组元素最小值tuple(iterable)将可迭代系列转换为元组30、字典字典可存储任意类型对象,即可包含以任意类型额数据结构作为元素的集合,同时各元素具有与之对应且唯一的键,字典主要通过键来访问对应的元素。由于字典是可变的,所以可以对字典对象进行元素的增删改查等操作。Python中常用的两种创建字典的基本方法分别是使用花括号和使用函数diet创建,字典的每个键值key=>value对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号中:diet函数的作用实质上主要是将包含双值子序列的系列对象转换为字典类型,双值子序列是指包含两个元素的序列,而直接向diet函数传入键和值进行创建,其中须通过“二”将键和值隔开,注意diet作为PythOn的关键字和内置函数,变量名不建议命名为diet。字典可通过键访问对应的值,也可通过键访问赋值的方法向字典增添一个元素,若需要添加多个元素,或将两个字典内容合并,可以使用update方法。使用del语句可以删除某个键值对。另外,字典也包含POP函数,只要传入键,函数就能将对应的值从字典中抽离,不同的是必须传入参数。若需要清空字典内容,可以使用字典方法的Clear函数,结果返回空字典。字典的内置函数如下。函数描述len(dict)计算字典元素个数,即键的总数s(r(dict)输出字典,可以打印的字符串表示type(dict)返回输入的变量类型,如果变量是字典就返回字典类型字典的内置方法如下。方法描述dict.clear()删除字典内所有元素dict.copy()返回一个字典的浅复制dict.fromkeys()创建一个新字典,以序列Seq中元素做字典的键,VaI为字典所有键对应的初始值dict.get(key.(Iefaull=None)返回指定键的值,如果键不在字典中返回default设置的默认值keyindiet如果键在字典diet里返回true,否则返回falsedict.items()以列表返回一个视图对象dict.keys()返回一个视图对象dict.setdefault(key,default=None)和gei()类似,但如果键不存在于字典中,将会添加键并将值设为defaultdict.update(dict2)把字典dict2的键/值对更新到diet里dict.values()返回一个视图对象pop(key.defaull)删除字典key(键)所对应的值,返回被删除的值popitem()返回并删除字典中的最后一对键和值31、集合集合(Set)是一个无序的不重复元素序列,类似于字典中的键,集合的元素都是不可重复的,而且属于不可变类型,元素之间没有排列顺序。Python中的集合类型就相当于数学集合论中所定义的集合,可对集合对象进行数学集合运算(并集、交集、差集等)。若按数据结构对象是否可变来分,集合类型数据结构包括可变集合和不可变集合。可变集合对象,可对其元素进行增添、删除等处理。可以使用大括号或者Seto函数创建集合,注意:创建一个空集合必须用set()而不是,因为是用来创建一个空字典。相关常用方法和函数如下。方法描述set.add向可变集合中添加一个元素set.update向可变集合添加其他集合的元素,即合并两个集合,也可用该方法添加元素,如列表,元组,字典等set.pop随机删除可变集合中的一个元素,当集合对象为空集时,则返回错误set.remove删除可变集合中指定的一个元素set.discard删除可变集合中指定的一个元素set.clear清空可变集合中所有元素,返回空集in使用Python中的in方法可以查询元素是否存在于集合当中Ien获取集合当中元素的个数set.copy复制可变集合的内容并创建一个副本对象不可变集合对象属于不可变数据类型,不能对其中的元素进行修改处理,创建不可变集合的方法是使用fr。ZenSet函数。32、条件语句Python条件语句是通过一条或多条语句的执行结果(TrUe或者FalSe)来决定执行的代码块。if语句可实现条件分支,一般的形式如下。ifCondition:statement_block_1elifcondition_2:statement_block_2else:statement_block_3PythOn中用elif代替了elseif,所以if语句的关键字为:if-elif-else。(1)每个条件后面要使用冒号:,表示接下来是满足条件后要执行的语句块。(2)使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。(3)在Python中没有switch-case语句。33、循环语句for循环语句Python中的循环语句有for和while0for循环在PythOn中是一个通用的序列迭代器,可以遍历任何有序的序列,如字符串、列表、元组等。Python中的for语句接收可迭代对象,如序列和迭代器作为其参数,每次循环可以调取其中的一个元素。For循环的一般格式如下。for<variable>in<sequence>:<statements>else:<statements>34、循环语句VVhi加循环语句while循环也是最常用循环之一,一般形式如下°需要注意冒号和缩进。另外,在Python中没有do.while循环。while判断条件(condition):执行语句(StatementS)35、循环语句一跳出循环语句在循环语句中,可以通过设置条件表达式永远不为false来实现无限循环。无限循环可以使用“CE+C”组合键来中断执行。也可以设定COntinUe和break语句来跳出循环,ContinUe用于跳出该次循环,也就是跳过当前循环的剩余语句,进入下一轮循环;break用于退出循环,相当于整个循环过程直接结束,如果使用在嵌套循环中,break语句可以停止执行最深层的循环,并开始执行下一行代码。PaSS是空语句,作用是保持程序结构的完整性,它不做任何事情,一般用作占位语句。36、循环语句range语句range函数能够快速构造一个数字序列,例如,range(5)或者range(0,5)即构造了序列0,1,2,3,4。指定数值能够生成对应的数列,也可以指定区间的值,也可以使range以指定的数字开始并指定不同的增量(甚至可以是负数,有时这也叫做“步长”)。range函数经常和Ien函数一起用于遍历整个序列,Ien函数能够返回一个序列的长度,因此可以使用这两个函数快速通过索引访问序列并对其进行修改。37、函数和方法函数使一段代码,能将一些数据(参数)传递进程序进行处理,然后返回一些数据(返回值),也可以没有返回值,但它跟一个对象相关联。方法和函数大致上是相同的,都是通过名字来进行调用,但有两个主要的不同之处:一是方法中的数据是隐式传递的,函数的数据是显式传递的;二是方法可以操作类内部的数据,而函数不行。简单来说,就是方法和对象相关,函数和对象无关。38、自定义函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。PyIhOn提供了许多内建函数,比如Print()。但也可以自己创建函数,这被叫做用户自定义函数。函数定义的规则如下。(1)函数代码块以def关键词开头,后接函数标识符名称和圆括号()。(2)任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。(3)函数的第一行语句可以选择性地使用文档字符串一用于存放函数说明。(4)函数内容以冒号起始,并且缩进。(5)return表达式结束函数,选择性地返回一个值给调用方,不带表达式的relum相当于返回NOne。定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,可以通过另一个函数调用执行,也可以直接从Python命令提示符执行。39、函数参数Pylhon中函数参数主要有4种。(I)位置参数:调用函数时根据函数定义的位置参数来传递参数。(2)关键字参数:通过“键-值”形式加以指定,可以让函数更加清晰,容易使用,同时也清除了参数的顺序要求。(3)默认参数:定义函数时为参数提供的默认值,调用函数时,默认参数的值可传可不传。注意:所有的位置参数必须出现在默认参数之前,包括函数定义和调用。(4)可变参数:定义函数时,有时候不确定调用时会传递多少个参数,可用定义任意位置参数或者关键字参数的方法来进行参数传递。在可变参数之前可以定义O到任意多个参数,注意可变参数永远放在参数最后面。定义任意数量的位置参数需要一个星号前缀(*)来表示,如在Python中使用*arg和*kwargs可以定义可变参数;定义任意数量的关键字可变参数需要两个星号(*)作为前缀。40、全局变量和局部变量定义函数时,往往需要在函数内部对变量进行定义和赋值,在函数体内定义的变量为局部变量。与局部变量相对应,定义在函数体外面的变量为全局变量,全局变量可以在函数体内被调用。41、匿名函数PyIhOn允许使用Iambda语句创建匿名函数。在Iambda语句中,冒号前是函数参数,若有多个函数必须使用逗号分隔;冒号后面是返回值。def语句也可以创建一个函数对象,只是使用Iambda语句创建的函数对象没有名称。Lambda为定义匿名函数的的关键字,arguments为传入函数的参数,expression为返回的结果。对于Iambda语句,应注意的事项如下。(1) Iambda定义的单行函数,如果需要复杂的函数,应使用def语句。(2) Iambda语句可以包含多个参数。(3) lambda语句有且只有一个返回值。(4) Iambda语句中的表达式不能含有命令,且仅限一条表达式。42、正在表达式正则表达式是一个特殊的字符序列,能检查一个字符串是否与某种模式匹配。re.malch:从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,malch()就返回None。re.search:扫描整个字符串并返回第一个成功的匹配,匹配成功,返回一个匹配的对象,否则返回None。re.malch只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;re.search匹配整个字符串,直到找到一个匹配。re.sub:Python的re模块提供了re.sub用于替换字符串中的匹配项。recompile:用于编译正则表达式,生成一个正则表达式对象,供match。和SearChO使用。语法格式如下。pile(pattem,flags)pattern:一个字符串形式的正则表达式。flags:可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为如下。(1) re.I:忽略大小写。(2) re.L:表示特殊字符集w,W,b,B,s,S依赖于当前环境。(3) re.M:多行模式。(4) re.S:即为.并且包括换行符在内的任意字符(.不包括换行符)。(5) re.U:表示特殊字符集w,W,b,B,d,D,s,S依赖于Unicode字符属性数据库。(6) re.X:为了增加可读性,忽略空格和#后面的注释。re.findall:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。注意:match和SearCh是匹配一次:findall匹配所有。re.split:SPlit方法按照能够匹配的子串将字符串分割后返回列表。正则表达式模式语法中的特殊元素如下。模式描述A匹配字符串的开头$匹配字符串的末尾匹配任意字符,除了换行符,当reDOTALL标记被指定时,则可以匹配包括换行符的任意字符.用来表示一组字符,单独列出:amk匹配'V或k.不在中的字符:Pabc匹配除了a.b,c之外的字符re*匹配0个或多个的表达式re+匹配1个或多个的表达式re?匹配。个或1个由前面的正则表达式定义的片段,非贪婪方式renJ精确匹配n个前面表达式。例如,。2不能匹配“Bob”中的"o",但是能匹配"food”中的两个。匹配n个前面表达式。例如,。2,)不能匹配"Bob"中的但能匹配"f。OOoOd”中的所有OJo1,"等价于"o+";"o0,mren,则等价于"o*"ren,m匹配n到m次由前面的正则表达式定义的片段,贪婪方式ab匹配a或b(re)对正则表达式分组并记住匹配的文本(?:re)类似(),但是不表示一个组w匹配字母数字及下划线W匹配非字母数字及下划线s匹配任意空白字符,等价于lnflS匹配任意非空字符d匹配任意数字,等价于0-9D匹配任意非数字A匹配字符串开始Z匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串z匹配字符串结束G匹配最后匹配完成的位置b匹配一个单词边界,也就是指单词和空格间的位置。例如,'erb,可以匹配"never"中的守,但不能匹配"verb"中的宣B匹配非单词边界。tr®能匹配"verb"中的言,但不能匹配"never”中的Br'n,t5等.匹配一个换行符,匹配一个制表符等43、读取txt文件要以读文件的方式打开一个文件对象,可以使用Python内置函数中的open函数传入文件名称和标识符。其中,标识符可以指定文件打开模式为读取模式(玲、写入模式(w)、附加模式(a)或读取和写入文件的模式(什)。如果读取的文件不存在,或者在当前工作路径下找不到要读取的文件,。Pen函数就会抛出一个IOError错误,并给出错误码和详细的信息以说明文件不存在。如果文件存在且程序可以正常打开文件,即可使用read函数一次性读取文件的全部内容,并将文件内容读入内存,运用Print函数可将读取的文件内容打印出来,调用ClOSe函数可关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。使用with语句能更好地读取文件,它能处理上下文环境产生的异常,同时能不调用close函数就实现文件关闭。读取过程应用的函数如下。函数描述rsirip删除字符串末尾的指定字符(默认为空格)!strip删除字符前面的指定字符strip删除字符串首尾两端的指定字符read读取整个文件的内容,但读取内容将存储到一个字符串的变量中readlines按行读取整个文件内容,可将读取内容存储到一个列表中readline每次读取文件的一行,将读取的-行内存存储到一个字符串变量中44、写入txt文件在Python的open函数中,标识符可指定文件打开模式,如果将数据写入文件,只需将标识符设为写入模式(w)。如果写入的文件不存在,OPen函数将自动创建文件,需注意,如文件已存在,写入模式写入文件会先清空该文件。需注意的是,标识符W和Wb表示写文本文件和写二进制文件(r后面加b表示读取二进制文件)。如果要将数值型数据写入文本文件,必须先用Str函数将数值型数据转换为字符串格式。而当写入多行数据时,Write函数不会自动添加换行符,则会出现多行数据挤在一起的情况,为了区分行与行数据,需在Write语句内添加换行符号(n)。在反复调用Write函数写入文件后,务必要调用ClOSe函数关闭文件。在写入文件的过程,操作系统往往不会立刻把数据写入磁盘,而是放到内存中缓存起来,只有调用close函数时,操作系统才保证把没有写入的数据全部写入磁盘。若没调用CloSe函数,可能会导致数据仅写入部分,