Python第六章字符串课件

PPT
  • 阅读 90 次
  • 下载 0 次
  • 页数 66 页
  • 大小 1.235 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python第六章字符串课件
可在后台配置第一页与第二页中间广告代码
Python第六章字符串课件
可在后台配置第二页与第三页中间广告代码
Python第六章字符串课件
可在后台配置第三页与第四页中间广告代码
Python第六章字符串课件
Python第六章字符串课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 66
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Python第六章字符串课件.ppt,共(66)页,1.235 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44416.html

以下为本文档部分文字说明:

2022/11/241Python语言编程导论第六章字符串内容提要•概述•通用序列操作•字符串格式化•字符串方法•正则表达式简介2022/11/242一、概述•在Python中,字符串是除数字外最重要的数据类型。字符串无处不在:将字符串输出到屏幕上;从用户的键盘输入读取字符串;文件通常被视为

大型字符串;网页大部分是由文本组成的。•字符串是一种聚合数据结构,可充分利用索引和切片—用于从字符串中提取子串。•而Python正则表达式库,是一种用来处理字符串的微型语言,但功能强大。2022/11/243二、通用序

列操作•Python中,字符串、列表和元组都属于序列。•序列有一些通用的操作。包括:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、检查某个元素是否属于序列的成员(成员资格)、计算序列长度、找出最大元素和最小

元素等。2022/11/2441、索引•序列中的所有元素都是有编号的—从0开始递增。这些元素可以通过编号分别访问。索引有正索引和负索引,可根据实际情况选用。•字符串就是一个由字符组成的序列,处理字符串时,经常需要访问其中的各个字符。索引0指向第1个字符。2022/11

/245例如:字符串’apple’的正索引和负索引2022/11/246例6-1:字符串索引应用2022/11/247执行结果:例6-2:计算给定字符串的编码总和2022/11/248执行结果:2、分片•与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片是实

际应用中经常使用的技术,被截取的部分称为“子串”•Python3支持的分片格式为:S[i:j:k]•表示:索引S对象中的元素,从索引为i直到索引为j-1,每隔k个元素索引一次,第三个限制k为步长,默认为1,也可以使用负数作为步长,步长-1表示

分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。•在Python中,还可以使用split()函数来截取字符串。2022/11/249例6-3:字符串分片2022/11/2410执行结果:例6-4:返回文件名中的扩展名2022/11/2411执行结果:2022/11

/24123、序列相加(字符串连接、合并)•之前介绍过,使用“+”完成。除此之外,还可以使用join函数和reduce函数实现字符串的合并。注意:不同类型的数据不能相加。•如:4、乘法•用数字x乘以一

个序列会生成新的序列,在新的序列中,原来的序列被重复x次。•如:5、成员资格•为了检查一个值是否在序列中,可以使用in运算符。该运算符检查某个条件是否为真,若为真返回True,否则返回False。•例如:20

22/11/24136、长度、最小值和最大值•len、min和max都是内置函数。•len—返回序列中包含的元素个数。•min—返回序列中的最小值。•max—返回序列中的最大值。•例如:2022/11/2414课堂练习一

:•课堂练习一2022/11/2415三、字符串格式化1、字符串格式化•C语言使用函数printf()格式化输出结果,Python也提供了类似功能。•Python将若干值插入带有“%”标记的字符串中,从而可以按照指定格式输

出字符串。•语法:"%s"%str1"%s%s"%(str1,str2)2022/11/2416例6-5:格式化字符串2022/11/2417执行结果:例6-6:带精度的格式化2022/11/2418执行结果:Python格式化字符串的替代符及含义:符号描述符号描述%c格式化字符及其ASCII码%

f格式化浮点数字,可指定小数点后的精度%s格式化字符串%e用科学计数法格式化浮点数%d格式化整数%E作用同%e%u格式化无符号整数%g根据值的大小决定使用%f或%e%o格式化无符号八进制数%G作用同%g%x格式化无符号十六进制数%p

用十六进制数格式化变量的地址%X格式化无符号十六进制数(大写)%%若在字符串中输出“%”,需要使用“%%”2022/11/2419例6-7:符号、对齐和用0填充•在字段宽度和精度之间还可以放置一个“标志”,该标志可以是零、加号、减号或空格。零表示数字将会用0填充。2

022/11/2420执行结果:2、字符串的转义字符•计算机中存在可见字符与不可见字符。可见字符指键盘上的字母、数字和符号。不可见字符是指换行、回车、制表符等字符。•对于不可见字符,Python使用的方法类似于C语言,都是使用“\”作为转义字符。•Python还提供了函数strip()、l

strip()、rstrip()去除字符串中的转义字符。2022/11/2421Python常用的转义字符及其含义:符号描述符号描述\\反斜线\v纵向制表符\’单引号\r回车符\”双引号\f换页符\a发出系统响铃声\o八进制数代表的字符\b退格符\x十六

进制数代表的字符\n换行符\000终止符,其后的字符串全部忽略\t横向制表符2022/11/2422例6-8:转义字符应用2022/11/2423执行结果:四、字符串函数(方法)•Python字符串自带了大量很有用的函数,要查看这些

函数,可调用dir并将参数指定为任何字符串(如:dir(''))。•虽无必要准确记住所有函数功能,但最好有个大致了解,这样有益于需要时去查询具体使用。•字符串函数的详细介绍可参阅其文档字符串或Python在线文档(https://docs.python.org

/3/)。•此处介绍常用的字符串函数。2022/11/24241、测试函数•用于检测字符串是否为特定格式的函数,它们组成了一个最大的字符串函数组。•测试函数都返回True或False,因此也称为布尔函数或谓词。2

022/11/2425字符串测试函数:函数名何时返回True函数名何时返回Trues.endswith(t)s以字符串t结尾s.islower()s只包含小写字母s.startswith(t)s以字符串t打头s.isnumeric()s只包含数字s.isalnum()s只包含

字母和数字s.isprintable()s只包含可打印字符s.isalpha()s只包含字母s.isspace()s只包含空白字符s.isdecimal()s只包含表示十进制数字的字符s.istitle()s是个大小写符合标题要求的字符串s.isdigit()s只包含数字字符s.is

upper()s只包含大写字母s.isidentifier()s是合法的标识符tinss包含字符串t2022/11/2426例如:2022/11/24272、字符串的查找函数函数名返回值s.find(t)若未找到字符串t,则返回-1;否则返回t在s中的起始位置s.rfind(t)

与find相同,但从右往左查找s.index(t)与find相同,但如果在s中找不到t,则引发ValueError异常s.rindex(t)与index相同,但从右往左查找2022/11/2428•说明:函数index和find之间的差别在于没有找到指定子串的情形。函数in

dex引发异常ValueError,而函数find将返回-1。例6-9:查找函数应用2022/11/2429执行结果:3、字符串的替换函数函数名返回的字符串s.replace(old,new)将s中的每个old替换为news.expandtab

s(n)将s中的每个制表符扩展为空格,空格宽度为n2022/11/2430•Python字符串自带了两个替换函数,如下表所示。•注意:使用替换函数可轻松地删除字符串中的子串。例6-10:字符串替换2022/11/2431执行结果:4、字符串的

合并•之前介绍过,Python可使用“+”连接不同的字符串。•除此之外,还可以使用join函数(是split方法的逆方法)和reduce函数实现字符串的合并。2022/11/2432例6-11:使用join函数连接字符串2022/11/2433执行结果:例6-12:使用reduce函数连接字

符串2022/11/2434执行结果:5、拆分函数函数返回的字符串s.partition(t)将s拆分为三个字符串(head、t和tail),其中head为t前面的子串,tail为t后面的子串。返回值为元组s.rpartition(t)与partiti

on相同,但从s的右端开始搜索t。返回值为元组s.split(t)以t为分隔符,将s划分成一系列子串,并返回一个由这些子串组成的列表s.rsplit(t)与split相同,但从s的右端开始搜索ts.splitlines()返回一个由s中的各行组成的列表2022/11/2435

•拆分函数将字符串拆分成多个子串。如下表所示。例6-13:拆分字符串2022/11/2436执行结果:例6-14:使用split()函数获取子串2022/11/2437执行结果:6、字符串与日期的转换•在实际应用中,经常需要将日期类型与字符串类型互相转换。•Python

提供了time模块处理日期和时间。函数strftime()可以实现从时间到字符串的转换。•字符串到时间的转换要进行两次转换,需要使用time模块和datetime类。2022/11/2438strftime()函数:•声明:strftime(form

at[,tuple])->string•说明:–参数format表示格式化日期的特殊字符。例如:“%Y-%m-%d”相当于“yyyy-MM-dd”.–参数tuple表示需要转换的时间,用元组存储。元组中的元素分别表示年、月、日、时、分、秒。–函数返回一个

表示时间的字符串。2022/11/2439字符串到时间的转换步骤:•第一次转换:调用函数strptime()将字符串转换为一个元组。其声明为:strptime(string,format)->struct_ti

me–函数返回一个存放时间的元组。•第二次转换:将表示年、月、日的3个变量传递给函数datetime()。datetime类的datetime()函数格式为:datetime(year,month,day[,hour[,minute

[,second[,microsecond[,tzinfo]]]])–函数返回一个date类型的变量。2022/11/2440格式化日期的常用标记:符号描述符号描述%a英文星期的简写%M分钟数,取值在01~59之间%A英文星期的完整拼写%j显示从本年第1天开始到当天的天数%b

英文月份的简写%w显示今天是星期几,0表示星期天%B英文月份的完整拼写%W显示当天属于本年的第几周,以星期一作为一周的第一条进行计算%c显示本地的日期和时间%x本地的当天日期%d日期数,取值在1~31之间%X本地的当天时间%H小时数,取值

在00~23之间%y年份,取值在00~99之间%I小时数,取值在01~12之间%Y年份的完整数字%m月份,取值在01~12之间2022/11/2441例6-15:时间与字符串的互相转换2022/11/2442执行结果:7、改变大小写函数函数名返回的字符串s.capitalize()将s

[0]改为大写,其余小写s.lower()让s的所有字母都小写s.upper()让s的所有字母都大写s.swapcase()将小写字母改为大写,并将大写字母改为小写s.title()让s的大小写符合标题的要求2022/

11/2443•说明:在以上函数中,Python都创建并返回一个新字符串,Python不会真正修改原字符串。例如:2022/11/24448、设置格式函数函数名返回的字符串s.center(n,ch)包含n个字符的字符串,其中s位于中间,两边用字符ch填充s.ljus

t(n,ch)包含n个字符的字符串,其中s位于左边,右边用字符ch填充s.rjust(n,ch)包含n个字符的字符串,其中s位于右边,左边边用字符ch填充s.format(vars)包含用于设置字符串格式的微型语言,详见:https://docs.python.or

g/3.4/library/string.html#formatspec2022/11/2445例6-16:设置格式2022/11/2446执行结果:9、剥除函数函数名返回的字符串s.strip(ch)从s开头和末尾删除所有包含在字符串ch中的字符s.lstrip(ch)从s开头(左端

)删除所有包含在字符串ch中的字符s.rstrip(ch)从s末尾(右端)删除所有包含在字符串ch中的字符2022/11/2447•剥除函数用于删除字符串开头或末尾多余的字符。如下表所示。•默认情况下,剥除空白字符;如

果指定了字符串参数,则剥除该字符串中的字符。例6-17:字符串剥除2022/11/2448执行结果:例6-18:去除转义字符2022/11/2449执行结果:10、字符串比较•Python直接使用“==”“!=”操作符比较两个字符串的内容。如果比较

的两个变量的类型不相同、比较的内容也不相同。•若要比较字符串的部分内容,可以先截取子串,再使用“==”“!=”操作符进行比较。•若要比较字符串的开头和结尾部分,更方便的方式是使用startswith()或endswith()函数。•start

swith()与endswith()的声明为:–startswith(substring,[start[,end]])–endswith(substring,[start[,end]])2022/11/2450例6-19:字符串比较202

2/11/2451执行结果:例6-20:比较字符串开始和结束处2022/11/2452执行结果:课堂练习二:•一、假定给定两个字符串(它们可能是空串)s1和s2,要将这两个串合并在一起。要求是:s1串的第

一个字符与s2串的第一个字符连在一起,后续以此类推。若一个串的长度大于另一个串的长度,则保留长串的剩余字符,即连接到新串的末尾即可。例如:若s1=’abcd’、s2=’efghi’,则新串为:’aebfcgdhi’。•编写函数laceStrings(s1,s2),完成上述

功能。••二、编写函数OnlyCharNum(s),对于给定的字符串只显示字母和数字。2022/11/2453五、正则表达式简介•虽然Python字符串提供了众多实用的函数,但实际处理字符串时,常常需要更强大的工具。鉴于此,Python提供了一种用于复杂字符串处理的

微型语言—正则表达式,但正则表达式并不是Python的一部分。•正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。实际上,正则表达式是一种简练描绘一组字符串的方式,可用于高效地执行常见的字符串处理任务,如匹配、替换和

分拆字符串。•使用正则表达式编写一些逻辑验证非常方便,如:电子邮件及电话号码的格式验证。Python提供了re模块实现正则表达式的验证。2022/11/24541、正则表达式的构成•正则表达式是包含元字符(metacharacter)的列表。•Python支持的正则表达式元字符和语法2022/

11/24552、re模块中一些重要函数函数描述compile(pattern[,flags])根据包含正则表达式的字符串创建模式对象search(pattern,string[,flags])在字符串中查找模式match(pattern,string[,flags])

在字符串的开始处匹配模式split(pattern,string)根据模式的匹配项来分割字符串findall(pattern.String)列出字符串中模式的所有匹配项sub(pat,repl,string[.Count=0]

)将字符串中所有pat的匹配项用repl替换escape(string)将字符串中所有特殊正则表达式字符转义2022/11/2456例6-21:2022/11/24572022/11/24583、re模块中匹配对象的重要方法方法描述group([

group1,…])获取给定子模式(组)的匹配项start([group])返回给定组的匹配项的开始位置end([group])返回给定组的匹配项的结束位置(与分片一样,不包括组的结束位置)span([group])返回一个组的开始和结束位置

2022/11/2459例22:2022/11/2460执行结果:例6-23:编写一个程序,从键盘输入若干字符串,当输入done或quit则结束程序。•通常的方法为:2022/11/2461执行结果:使用正则表达式用户输入don

e或quit结束程序:2022/11/2462执行结果:例6-24:假设要识别逗人的字符串:开头为一个或多个’ha’,末尾为一个或多个’!’2022/11/2463执行结果:•说明:本函数如果不使用正则表达式,将非常麻烦。4、关于正则表达式的说明•Python的re模块规模庞大,其中有大量正则表

达式函数可用于执行字符串处理任务,如匹配、分拆和替换;还有提高常用正则表达式处理速度的技巧,以及众多匹配常用字符的捷径。•re模块的文档可参见:https://docs.python.org/3/libr

ary/re.html2022/11/2464人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读

报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?