Python第六章字符串剖析.ppt_第1页
Python第六章字符串剖析.ppt_第2页
Python第六章字符串剖析.ppt_第3页
Python第六章字符串剖析.ppt_第4页
Python第六章字符串剖析.ppt_第5页
免费预览已结束,剩余59页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020/5/11,1,Python语言编程导论,第六章字符串,内容提要,概述通用序列操作字符串格式化字符串方法正则表达式简介,2020/5/11,2,一、概述,在Python中,字符串是除数字外最重要的数据类型。字符串无处不在:将字符串输出到屏幕上;从用户的键盘输入读取字符串;文件通常被视为大型字符串;网页大部分是由文本组成的。字符串是一种聚合数据结构,可充分利用索引和切片用于从字符串中提取子串。而Python正则表达式库,是一种用来处理字符串的微型语言,但功能强大。,2020/5/11,3,二、通用序列操作,Python中,字符串、列表和元组都属于序列。序列有一些通用的操作。包括:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、检查某个元素是否属于序列的成员(成员资格)、计算序列长度、找出最大元素和最小元素等。,2020/5/11,4,1、索引,序列中的所有元素都是有编号的从0开始递增。这些元素可以通过编号分别访问。索引有正索引和负索引,可根据实际情况选用。字符串就是一个由字符组成的序列,处理字符串时,经常需要访问其中的各个字符。索引0指向第1个字符。,2020/5/11,5,例如:字符串apple的正索引和负索引,2020/5/11,6,例6-1:字符串索引应用,2020/5/11,7,执行结果:,例6-2:计算给定字符串的编码总和,2020/5/11,8,执行结果:,2、分片,与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片是实际应用中经常使用的技术,被截取的部分称为“子串”Python3支持的分片格式为:Si:j:k表示:索引S对象中的元素,从索引为i直到索引为j-1,每隔k个元素索引一次,第三个限制k为步长,默认为1,也可以使用负数作为步长,步长-1表示分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。在Python中,还可以使用split()函数来截取字符串。,2020/5/11,9,例6-3:字符串分片,2020/5/11,10,执行结果:,例6-4:返回文件名中的扩展名,2020/5/11,11,执行结果:,2020/5/11,12,3、序列相加(字符串连接、合并)之前介绍过,使用“+”完成。除此之外,还可以使用join函数和reduce函数实现字符串的合并。注意:不同类型的数据不能相加。如:4、乘法用数字x乘以一个序列会生成新的序列,在新的序列中,原来的序列被重复x次。如:,5、成员资格,为了检查一个值是否在序列中,可以使用in运算符。该运算符检查某个条件是否为真,若为真返回True,否则返回False。例如:,2020/5/11,13,6、长度、最小值和最大值,len、min和max都是内置函数。len返回序列中包含的元素个数。min返回序列中的最小值。max返回序列中的最大值。例如:,2020/5/11,14,课堂练习一:,课堂练习一,2020/5/11,15,三、字符串格式化,1、字符串格式化C语言使用函数printf()格式化输出结果,Python也提供了类似功能。Python将若干值插入带有“%”标记的字符串中,从而可以按照指定格式输出字符串。语法:%s%str1%s%s%(str1,str2),2020/5/11,16,例6-5:格式化字符串,2020/5/11,17,执行结果:,例6-6:带精度的格式化,2020/5/11,18,执行结果:,Python格式化字符串的替代符及含义:,2020/5/11,19,例6-7:符号、对齐和用0填充,在字段宽度和精度之间还可以放置一个“标志”,该标志可以是零、加号、减号或空格。零表示数字将会用0填充。,2020/5/11,20,执行结果:,2、字符串的转义字符,计算机中存在可见字符与不可见字符。可见字符指键盘上的字母、数字和符号。不可见字符是指换行、回车、制表符等字符。对于不可见字符,Python使用的方法类似于C语言,都是使用“”作为转义字符。Python还提供了函数strip()、lstrip()、rstrip()去除字符串中的转义字符。,2020/5/11,21,Python常用的转义字符及其含义:,2020/5/11,22,例6-8:转义字符应用,2020/5/11,23,执行结果:,四、字符串函数(方法),Python字符串自带了大量很有用的函数,要查看这些函数,可调用dir并将参数指定为任何字符串(如:dir())。虽无必要准确记住所有函数功能,但最好有个大致了解,这样有益于需要时去查询具体使用。字符串函数的详细介绍可参阅其文档字符串或Python在线文档(/3/)。此处介绍常用的字符串函数。,2020/5/11,24,1、测试函数,用于检测字符串是否为特定格式的函数,它们组成了一个最大的字符串函数组。测试函数都返回True或False,因此也称为布尔函数或谓词。,2020/5/11,25,字符串测试函数:,2020/5/11,26,例如:,2020/5/11,27,2、字符串的查找函数,2020/5/11,28,说明:函数index和find之间的差别在于没有找到指定子串的情形。函数index引发异常ValueError,而函数find将返回-1。,例6-9:查找函数应用,2020/5/11,29,执行结果:,3、字符串的替换函数,2020/5/11,30,Python字符串自带了两个替换函数,如下表所示。,注意:使用替换函数可轻松地删除字符串中的子串。,例6-10:字符串替换,2020/5/11,31,执行结果:,4、字符串的合并,之前介绍过,Python可使用“+”连接不同的字符串。除此之外,还可以使用join函数(是split方法的逆方法)和reduce函数实现字符串的合并。,2020/5/11,32,例6-11:使用join函数连接字符串,2020/5/11,33,执行结果:,例6-12:使用reduce函数连接字符串,2020/5/11,34,执行结果:,5、拆分函数,2020/5/11,35,拆分函数将字符串拆分成多个子串。如下表所示。,例6-13:拆分字符串,2020/5/11,36,执行结果:,例6-14:使用split()函数获取子串,2020/5/11,37,执行结果:,6、字符串与日期的转换,在实际应用中,经常需要将日期类型与字符串类型互相转换。Python提供了time模块处理日期和时间。函数strftime()可以实现从时间到字符串的转换。字符串到时间的转换要进行两次转换,需要使用time模块和datetime类。,2020/5/11,38,strftime()函数:,声明:strftime(format,tuple)-string说明:参数format表示格式化日期的特殊字符。例如:“%Y-%m-%d”相当于“yyyy-MM-dd”.参数tuple表示需要转换的时间,用元组存储。元组中的元素分别表示年、月、日、时、分、秒。函数返回一个表示时间的字符串。,2020/5/11,39,字符串到时间的转换步骤:,第一次转换:调用函数strptime()将字符串转换为一个元组。其声明为:strptime(string,format)-struct_time函数返回一个存放时间的元组。第二次转换:将表示年、月、日的3个变量传递给函数datetime()。datetime类的datetime()函数格式为:datetime(year,month,day,hour,minute,second,microsecond,tzinfo)函数返回一个date类型的变量。,2020/5/11,40,格式化日期的常用标记:,2020/5/11,41,例6-15:时间与字符串的互相转换,2020/5/11,42,执行结果:,7、改变大小写函数,2020/5/11,43,说明:在以上函数中,Python都创建并返回一个新字符串,Python不会真正修改原字符串。,例如:,2020/5/11,44,8、设置格式函数,2020/5/11,45,例6-16:设置格式,2020/5/11,46,执行结果:,9、剥除函数,2020/5/11,47,剥除函数用于删除字符串开头或末尾多余的字符。如下表所示。默认情况下,剥除空白字符;如果指定了字符串参数,则剥除该字符串中的字符。,例6-17:字符串剥除,2020/5/11,48,执行结果:,例6-18:去除转义字符,2020/5/11,49,执行结果:,10、字符串比较,Python直接使用“=”“!=”操作符比较两个字符串的内容。如果比较的两个变量的类型不相同、比较的内容也不相同。若要比较字符串的部分内容,可以先截取子串,再使用“=”“!=”操作符进行比较。若要比较字符串的开头和结尾部分,更方便的方式是使用startswith()或endswith()函数。startswith()与endswith()的声明为:startswith(substring,start,end)endswith(substring,start,end),2020/5/11,50,例6-19:字符串比较,2020/5/11,51,执行结果:,例6-20:比较字符串开始和结束处,2020/5/11,52,执行结果:,课堂练习二:,一、假定给定两个字符串(它们可能是空串)s1和s2,要将这两个串合并在一起。要求是:s1串的第一个字符与s2串的第一个字符连在一起,后续以此类推。若一个串的长度大于另一个串的长度,则保留长串的剩余字符,即连接到新串的末尾即可。例如:若s1=abcd、s2=efghi,则新串为:aebfcgdhi。编写函数laceStrings(s1,s2),完成上述功能。二、编写函数OnlyCharNum(s),对于给定的字符串只显示字母和数字。,2020/5/11,53,五、正则表达式简介,虽然Python字符串提供了众多实用的函数,但实际处理字符串时,常常需要更强大的工具。鉴于此,Python提供了一种用于复杂字符串处理的微型语言正则表达式,但正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。实际上,正则表达式是一种简练描绘一组字符串的方式,可用于高效地执行常见的字符串处理任务,如匹配、替换和分拆字符串。使用正则表达式编写一些逻辑验证非常方便,如:电子邮件及电话号码的格式验证。Python提供了re模块实现正则表达式的验证。,2020/5/11,54,1、正则表达式的构成,正则表达式是包含元字符(metacharacter)的列表。Python支持的正则表达式元字符和语法,2020/5/11,55,2、re模块中一些重要函数,2020/5/11,56,例6-21:,2020/5/11,57,2020/5/11,58,3、re模块中匹配对象的重要方法,2020/5/11,59,例22:,2020/5/11,60,执行结果:,例6-23:编写一个程序,从键盘输入若干字符串,当输入done或quit则结束程序。,通常的方法为:,2020/5/11,61,执行结果:,使用正则表达式用户输入done或quit结束程序:,2020/5/11,62,执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论