Python程序设计基础-Chap04-字符串课件_第1页
Python程序设计基础-Chap04-字符串课件_第2页
Python程序设计基础-Chap04-字符串课件_第3页
Python程序设计基础-Chap04-字符串课件_第4页
Python程序设计基础-Chap04-字符串课件_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

第4章字符串第4章字符串内容提纲4.1字符串的基本操作24.2字符串格式化34.3常用字符串函数和方法1内容提纲4.1字符串的基本操作24.2字符串格式化34引例引例看看这个简单的例子。当我们在利用QQ等通信工具向好友发送消息时,所发送的消息就是由一系列字符串组成的。我们发送的消息会通过服务器中转,然后再发送到目的地。在这个过程中,服务器就是将消息的内容当成字符串来处理的。引例4.1.1字符串的表示我们可以使用两个单引号(')或两个双引号(")括起来创建字符串>>>str='howareyou'>>>print(str)howareyou>>>str="howareyou">>>print(str)howareyou单引号、双引号、三引号4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>#单引号中使用双引号str2='"python"'>>>#双引号中使用单引号str3="'python'">>>#三单引号str4='''python'''>>>#三单引号中间使用双引号str5='''"python"'‘’4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>#三单引号中有换行符str6='''hellopython'''>>>#三双引号中有换行符str7="""hellopython“”“4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>print(str2)"python">>>print(str3)'python'>>>print(str4)python>>>print(str5)"python"4.1字符串的基本操作>>>print(str6)hellopython>>>print(str7)hellopython4.1.1字符串的表示4.1字符串的基本操作>>>pr4.1.1字符串的表示(1)单引号中可以使用双引号,中间的会当作字符串输出。(2)双引号中可以使用单引号,中间的会当作字符串输出。(3)三单引号和三双引号中间的字符串在输出时保持原来的格式。4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.2索引序列是有顺序的,可以根据字符在序列中的位置将其编号,字符在字符串中的位置称为“索引”。在Python中,字符串中的字符是通过索引来提取的,索引从0开始。索引可以取负值,表示从末尾提取,最后一个为-1,倒数第二个为-2,即程序认为可以从结束处反向计数。在Python中,不仅可以对单个字符建立索引,而且还可以对字符串中的子串建立索引。4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引Python中用索引运算符“[]”来提取字符串中的字符。字符串索引4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引若存取范围超过范围的索引位置(或空字符串中的索引位置)会产生indexoutofrange异常。>>>s='howareyou'>>>s[11]#索引超出字符串范围Traceback(mostrecentcalllast):File"<pyshell#41>",line1,in<module>s[11]IndexError:stringindexoutofrange4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.3分片与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片是实际应用中经常使用的技术,被截取的部分称为“子串”或“子序列”。索引运算符冒号(:)指出子序列的范围。注意,此过程不会改变原来的字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片1.分片格式:S[i:j]表示选择S字符串中从索引位置i到索引位置j-1的子序列。Python采用的是半开区间,半开区间包含范围的起始值,而不包含结束值。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[4:]表达式指定的子序列从‘howareyou’中索引为4的位置开始,到字符串结尾处为止。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[:4]表达式指定的子序列从‘howareyou’中索引为0的位置开始,到字符串索引为4的位置为止,但不包括索引值为4的字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片负分片的例子:‘howareyou’[-1]表达式指定了原字符串最后一个字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片负分片的例子:'howareyou'[4:-2],指定的是从原字符串索引为4的位置开始,到原字符串倒数第3个位置结束的子串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片2.分片格式:S[i:j:k]表示选择S字符串中的字符,从索引位置i直到索引位置j-1,每隔k个字符索引一次,k为步长,默认为1。若省略i,则表示从起始位置开始索引;若省略j,则表示到结束位置为止。步长值指出了从原字符串中每隔多少个字符就取出值到子串中。也可以使用负数作为步长,步长-1表示分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片指定步长的分片4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片Python不支持字符类型;字符会被视为长度为1的字符串,因此也被认为是一个子字符串。要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.4合并Python使用“+”连接不同的字符串。“+”运算符需要两个字符串对象,得到一个新的字符串对象。新的字符串对象由前面两个字符串对象连接而成(将第2个字符串的开始连接到第1个字符串的末尾)。>>>str1='Hello'>>>str2='Guangzhou'>>>str1+str2'HelloGuangzhou'>>>str2+str1'GuangzhouHello'>>>str1+''+str2'HelloGuangzhou'4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并当出现“+”运算符时,Python是怎么知道该做连接运算还是加法运算呢?操作数的类型决定将执行的运算类型。如果“+”两侧都是字符串类型,则进行连接操作;如果“+”两侧都是数字类型,则进行加法运算;如果“+”两侧是不同的类型,Python解释器将提示出错。4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并使用join()连接字符串:>>>strs=['Hello','China','Hello','Guangzhou']#多个字符串存放在列表中>>>result=''.join(strs)#调用join(),依次连接列表中的元素>>>print(result)HelloChinaHelloGuangzhou4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.5复制使用重复运算符“*”实现字符串的复制。“*”需要一个字符串对象和一个整数,产生1个新的字符串对象。新的字符串对象是由原字符串复制而成,复制的次数为给出的整数值,而复制字符串时,字符串和整数的顺序无关。4.1字符串的基本操作4.1.5复制4.1字符串的基本操作4.1.5复制>>>str='Guangzhou'>>>str*3#str3次复制'GuangzhouGuangzhouGuangzhou'>>>3*str#str3次复制'GuangzhouGuangzhouGuangzhou'>>>(str+'')*3'GuangzhouGuangzhouGuangzhou'>>>str*strTraceback(mostrecentcalllast):File"<pyshell#83>",line1,in<module>str*strTypeError:can'tmultiplysequencebynon-intoftype'str'4.1字符串的基本操作4.1.5复制4.1字符串的基本操作4.1.6截取方法1:“索引”“切片

”来截取字符串获取子串。方法2:使用split()来获取子串。split()的语法如下:split([char][,num])[n]参数char表示用于分割的字符,默认的分割字符是空格。参数num表示分割的次数。默认情况下,将根据字符char在字符串中出现的个数来分割子串。函数的返回值是由子串组成的列表。参数n表示取第几个分片。split()就是将一个字符串分裂成多个字符串组成的列表。4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four" >>>print(sentence.split())#使用空格获取子串['Jane','said:','one,','two,','three,','four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(","))#使用逗号获取子串['Janesaid:one','two','three','four']>>>print(sentence.split(",",2))#使用逗号获取子串,num值为2['Janesaid:one','two','three,four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(",")[2])#使用逗号获取索引为2的分片three>>>print(sentence.split(",")[0])#使用逗号获取索引为0的分片Janesaid:one>>>print(sentence.split()[0])#使用空格获取索引为0的分片Jane4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.7比较1.使用“==”、“!=”、“<”、“>”运算符(1)单字符字符串的比较>>>'a'=='a'#两个字符相同,返回真True>>>'a'=='A'#两个字符不相同,返回假False>>>'a'!='A'#ord(a)=97,ord(A)=65,97!=65返回真True>>>'a'>'A'#ord(a)=97,ord(A)=65,97>65返回真True>>>'1'<"2"True4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.7比较1.使用“==”、“!=”、“<”、“>”运算符(2)多字符字符串的比较>>>'abs'<'cde'#索引位置0的’a’<’c’True>>>'abc'<'abd'#索引位置2的’c’<’d’True>>>'abc'>'abcd'#'abc'都相等,较长的字符串更大False>>>''<'a'#空字符串比其他字符串都小True4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.7比较2.使用startswith()、endswith()startswith()声明为:startswish(substr,[start[,end]])参数substr是与源字符串开头部分比较的子串。参数start表示开始比较的位置。参数end表示比较结束的位置。即在“start:end”范围内搜索子串substr。如果字符串以substr开头,则返回True,否则返回False。endswith()的参数与返回值与startswith()类似,不同的是endswith()从源字符串的尾部开始搜索。startswith()、endswith()不能用于比较源字符串中任意部分的子串。4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.7比较2.使用startswith()、endswith()>>>str="Howareyou">>>print(str.startswith("How"))#比较str的开头部分”How”True对比>>>str="Howareyou">>>print(str.endswith("you",6))True>>>print(str.endswith("you",6,10))False>>>print(str.endswith("you",6,len(str)))True4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.8长度与最值>>>str="HelloWorld">>>len(str)#求字符串str的长度10>>>max(str)#求字符串str中最大的字符'r'>>>min(str)#求字符串str中最小的字符'H'>>>max('bcd','fig','abcd','xyz','abab')#求多个字符串中最大的字符串'xyz'>>>min('bcd','fig','abcd','xyz','abab')#求多个字符串中最小的字符串'abab'4.1字符串的基本操作4.1.8长度与最值4.1字符串的基本操作4.1.9in运算符in运算符用于检查集合的成员,需要两个参数:测试字符串和可能包含测试字符串的字符串。形式如下:str1instr2如果测试字符串str1包含在str2中,且测试字符串序列必须完全相同则返回True,否则返回False。4.1字符串的基本操作4.1.9in运算符4.1字符串的基本操作4.1.9in运算符>>>word="China">>>'h'inwordTrue>>>'b'inwordFalse>>>'na'inwordTrue>>>'an'inword#测试字符串序列不相同False4.1字符串的基本操作4.1.9in运算符4.1字符串的基本操作4.2.1字符串的格式化输出Python支持格式化字符串的输出。基本的用法是将一个值插入一个有字符串格式符

%s的字符串中。>>>print("Mynameis%sandweightis%dkg!"%('Zara',21))MynameisZaraandweightis21kg!4.2字符串格式化4.2.1字符串的格式化输出4.2字符串格式化4.2.1字符串的格式化输出格式字符串中的信息和其他任何字符串一样进行显示。特殊情况是,用百分号(%)开头的特殊字符序列表明在字符串中出现%的位置,将会做一次替换。用命令结尾处圆括号中的数据来替换%。上面的实例中,用“%s”替代格式字符串中的字符串,用“%d”替代格式字符串中的数字(“d”为十进制整数)。格式化指令与数据项,按顺序由左到右进行匹配,第一条格式命令对应第一个数据项,依次类推。字符串的格式化语法如下所示:“%s”%str1“%s%s…”%(str1,str2…)4.2字符串格式化如果要格式化多个值,元组中元素的顺序必须与格式化字符串中替代符的顺序一致4.2.1字符串的格式化输出4.2字符串格式化如果要格式化4.2.1字符串的格式化输出使用%f可以格式化浮点数的精度。根据指定的精度四舍五入。>>>print("浮点型数字:%f"%1.23)#默认情况下输出小数点后6位数字浮点型数字:1.230000>>>print("浮点型数字:%.1f"%1.23)#四舍五入后的结果为1.2浮点型数字:1.2>>>print("浮点型数字:%.3f"%1.2355)#格式化小数点后3位并四舍五入浮点型数字:1.2364.2字符串格式化4.2.1字符串的格式化输出4.2字符串格式化4.2.1字符串的格式化输出表4-1Python格式化字符串的替代符及其含义4.2字符串格式化符号含义%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整型%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科学计数法格式化浮点数%E作用同%e,用科学计数法格式化浮点数%g根据值的大小决定使用%f或%e%G作用同%g,根据值的大小决定使用%f或%e%p用十六进制数格式化变量的地址4.2.1字符串的格式化输出4.2字符串格式化符号4.2.2宽度和精度可以为每个数据项指定字段显示的宽度(即数据占据的空格数)。如果宽度值为正值,则是在指定的宽度内右对齐;若指定了负值,则数据在指定的宽度内左对齐。>>>print("%sis%dyearsold."%("Ben",30))Benis30yearsold.>>>print("%10sis%-10dyearsold."%("Ben",30))Benis30yearsold.4.2字符串格式化4.2.2宽度和精度4.2字符串格式化4.2.2宽度和精度使用“%f”来控制浮点值的小数点右侧的位数,即精度。>>>importmath>>>print(math.pi)#未指定精度

3.141592653589793>>>print("Piis%.2f"%(math.pi))#保留小数点后2位Piis3.14>>>print("Piis%8.2f"%(math.pi))#指定宽度和精度,保留小数点后2位Piis3.14>>>print("Piis%8.4f"%(math.pi))#指定宽度和精度,保留小数点后4位Piis3.14164.2字符串格式化4.2.2宽度和精度4.2字符串格式化4.2.3字符串转义字符计算机中存在可见字符和不可见字符。可见字符指的是键盘上的字母、数字和符号。不可见字符指的是换行、回车等字符。对于不可见字符可以使用转义字符来表示。Python中转义字符的用法和Java相同都是使用“\”作为转义字符。>>>print("firstline\nsecondline")firstlinesecondline>>>print("firstword\tsecondword")firstword secondword4.2字符串格式化4.2.3字符串转义字符4.2字符串格式化4.2.3字符串转义字符去除字符串中的转义字符。>>>str="\thelloworld\n">>>print("直接输出:",str)直接输出: helloworld

>>>print("strip()后输出:",str.strip())strip()后输出:helloworld>>>print("lstrip()后输出:",str.lstrip())lstrip()后输出:helloworld>>>print("rstrip()后输出:",str.rstrip())rstrip()后输出: helloworld4.2字符串格式化4.2.3字符串转义字符4.2字符串格式化1.字符串测试字符串测试用于检测字符串是否为特定格式。如果测试的结果为真,返回True,否则返回False。>>>s="Helloworld">>>s.startswith('h')#测试字符串s是否以’h’开头

False>>>s.endswith("d")#测试字符串s是否以’d’结尾True>>>s.isupper()#测试字符串s是否只包含大写字母False>>>s.islower()#测试字符串s是否只包含小写字母False>>>s.isprintable()#测试字符串s是否只包含可打印字符True4.3常用字符串函数和方法1.字符串测试4.3常用字符串函数和方法2.字符串查找>>>s="HelloChina">>>print(s.find("H"))#在字符串s中查找"H"0>>>print(s.index("H"))#在字符串s中查找"H"0>>>print(s.rfind("H"))#在字符串s中从右往左查找"H"0>>>print(s.find("an"))#在字符串s中查找"an"-14.3常用字符串函数和方法2.字符串查找4.3常用字符串函数和方法3.字符串替换>>>s='one,twoandthree'>>>s1='one,\ttwo\tand\tthree'>>>print(s)one,twoandthree>>>print(s.replace('one','1'))#将字符串s中的每个’one’替换为'1'1,twoandthree>>>print(s.replace('one',''))#将字符串s中的每个’one’替换为'',twoandthree4.3常用字符串函数和方法3.字符串替换4.3常用字符串函数和方法3.字符串替换>>>print(s1)one, two and three>>>print(s1.expandtabs(8))#将字符串s中制表符扩展为空格,宽度为8one,twoandthree>>>print(s1.expandtabs(10))#将字符串s中制表符扩展为空格,宽度为10one,twoandthree4.3常用字符串函数和方法3.字符串替换4.3常用字符串函数和方法4.字符串合并使用join()合并字符串>>>strs=['hello','China','hello','Guangzhou']>>>result="".join(strs)#合并的串用空格分隔>>>print(result)helloChinahelloGuangzhou>>>seq=['123','456','789']>>>sep='+'#合并的串用’+’分隔>>>print(sep.join(seq))123+456+7894.3常用字符串函数和方法4.字符串合并4.3常用字符串函数和方法4.字符串合并使用reduce()合并字符串>>>fromfunctoolsimportreduce>>>importoperator#导入模块operator,利用add()方法实现累计连接>>>strs=['hello','China','hello','Guangzhou']>>>result=reduce(operator.add,strs,"")>>>print(result)helloChinahelloGuangzhou4.3常用字符串函数和方法4.字符串合并4.3常用字符串函数和方法5.字符串拆分>>>url=''>>>print(url.partition('.'))('www','.','’)>>>print(url.rpartition('.'))('','.','cn')>>>print(url.split('.'))['www','ptpress','com','cn']>>>sentence='MynameisBob'>>>print(sentence.split())['My','name','is','Bob']4.3常用字符串函数和方法5.字符串拆分4.3常用字符串函数和方法6.字符串与日期的转换>>>importtime,datetime>>>print(time.strftime("%Y-%m-%d%X",time.localtime()))2017-10-2116:09:24>>>t=time.strptime("2017-09-08","%Y-%m-%d")>>>y,m,d=t[0:3]>>>print(datetime.datetime(y,m,d))2017-09-0800:00:004.3常用字符串函数和方法6.字符串与日期的转换4.3常用字符串函数和方法7.字符串大小写>>>s='BeginningPython:UsingPython3.4.4andPython3.5'>>>s.lower()'beginningpython:usingpython3.4.4andpython3.5'>>>s.upper()'BEGINNINGPYTHON:USINGPYTHON3.4.4ANDPYTHON3.5'>>>s.capitalize()'Beginningpython:usingpython3.4.4andpython3.5'>>>s.title()'BeginningPython:UsingPython3.4.4AndPython3.5'4.3常用字符串函数和方法7.字符串大小写4.3常用字符串函数和方法8.字符串格式设置>>>s='Python'>>>ch='*'>>>print(s.center(10))Python>>>print(s.center(10,ch))**Python**>>>print(s.ljust(10))Python4.3常用字符串函数和方法8.字符串格式设置4.3常用字符串函数和方法8.字符串格式设置>>>print(s.ljust(10,ch))Python****>>>print(s.rjust(10,ch))****Python>>>print(s.ljust(10))Python4.3常用字符串函数和方法8.字符串格式设置4.3常用字符串函数和方法9.字符串剥除剥除函数用于删除字符串开头或末尾多余的字符,如表4-11所示。默认情况下,剥除空白字符;如果指定了字符串参数,则剥除该字符串中的字符。>>>name="JohnSmith">>>print(name.lstrip())JohnSmith>>>print(name.rstrip())JohnSmith>>>print(name.strip())JohnSmith4.3常用字符串函数和方法>>>title="*#GoodLuck!*#*#">>>print(title.strip())*#GoodLuck!*#*#>>>print(title.strip('*#'))GoodLuck!9.字符串剥除4.3常用字符串函数和方法>>>title本章小结字符串是程序开发中的常用数据类型,字符串的处理是实际应用中经常面对的问题。本章讲解了Python中字符串的表示与操作,包括字符串的索引与分片、合并、复制、截取、比较、格式化等。重点介绍了字符串的常用函数与方法。本章小结字符串是程序开发中的常用数据类型,字符串的处理是第4章字符串第4章字符串内容提纲4.1字符串的基本操作24.2字符串格式化34.3常用字符串函数和方法1内容提纲4.1字符串的基本操作24.2字符串格式化34引例引例看看这个简单的例子。当我们在利用QQ等通信工具向好友发送消息时,所发送的消息就是由一系列字符串组成的。我们发送的消息会通过服务器中转,然后再发送到目的地。在这个过程中,服务器就是将消息的内容当成字符串来处理的。引例4.1.1字符串的表示我们可以使用两个单引号(')或两个双引号(")括起来创建字符串>>>str='howareyou'>>>print(str)howareyou>>>str="howareyou">>>print(str)howareyou单引号、双引号、三引号4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>#单引号中使用双引号str2='"python"'>>>#双引号中使用单引号str3="'python'">>>#三单引号str4='''python'''>>>#三单引号中间使用双引号str5='''"python"'‘’4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>#三单引号中有换行符str6='''hellopython'''>>>#三双引号中有换行符str7="""hellopython“”“4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>print(str2)"python">>>print(str3)'python'>>>print(str4)python>>>print(str5)"python"4.1字符串的基本操作>>>print(str6)hellopython>>>print(str7)hellopython4.1.1字符串的表示4.1字符串的基本操作>>>pr4.1.1字符串的表示(1)单引号中可以使用双引号,中间的会当作字符串输出。(2)双引号中可以使用单引号,中间的会当作字符串输出。(3)三单引号和三双引号中间的字符串在输出时保持原来的格式。4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.2索引序列是有顺序的,可以根据字符在序列中的位置将其编号,字符在字符串中的位置称为“索引”。在Python中,字符串中的字符是通过索引来提取的,索引从0开始。索引可以取负值,表示从末尾提取,最后一个为-1,倒数第二个为-2,即程序认为可以从结束处反向计数。在Python中,不仅可以对单个字符建立索引,而且还可以对字符串中的子串建立索引。4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引Python中用索引运算符“[]”来提取字符串中的字符。字符串索引4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引若存取范围超过范围的索引位置(或空字符串中的索引位置)会产生indexoutofrange异常。>>>s='howareyou'>>>s[11]#索引超出字符串范围Traceback(mostrecentcalllast):File"<pyshell#41>",line1,in<module>s[11]IndexError:stringindexoutofrange4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.3分片与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片是实际应用中经常使用的技术,被截取的部分称为“子串”或“子序列”。索引运算符冒号(:)指出子序列的范围。注意,此过程不会改变原来的字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片1.分片格式:S[i:j]表示选择S字符串中从索引位置i到索引位置j-1的子序列。Python采用的是半开区间,半开区间包含范围的起始值,而不包含结束值。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[4:]表达式指定的子序列从‘howareyou’中索引为4的位置开始,到字符串结尾处为止。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[:4]表达式指定的子序列从‘howareyou’中索引为0的位置开始,到字符串索引为4的位置为止,但不包括索引值为4的字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片负分片的例子:‘howareyou’[-1]表达式指定了原字符串最后一个字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片负分片的例子:'howareyou'[4:-2],指定的是从原字符串索引为4的位置开始,到原字符串倒数第3个位置结束的子串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片2.分片格式:S[i:j:k]表示选择S字符串中的字符,从索引位置i直到索引位置j-1,每隔k个字符索引一次,k为步长,默认为1。若省略i,则表示从起始位置开始索引;若省略j,则表示到结束位置为止。步长值指出了从原字符串中每隔多少个字符就取出值到子串中。也可以使用负数作为步长,步长-1表示分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片指定步长的分片4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片Python不支持字符类型;字符会被视为长度为1的字符串,因此也被认为是一个子字符串。要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.4合并Python使用“+”连接不同的字符串。“+”运算符需要两个字符串对象,得到一个新的字符串对象。新的字符串对象由前面两个字符串对象连接而成(将第2个字符串的开始连接到第1个字符串的末尾)。>>>str1='Hello'>>>str2='Guangzhou'>>>str1+str2'HelloGuangzhou'>>>str2+str1'GuangzhouHello'>>>str1+''+str2'HelloGuangzhou'4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并当出现“+”运算符时,Python是怎么知道该做连接运算还是加法运算呢?操作数的类型决定将执行的运算类型。如果“+”两侧都是字符串类型,则进行连接操作;如果“+”两侧都是数字类型,则进行加法运算;如果“+”两侧是不同的类型,Python解释器将提示出错。4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并使用join()连接字符串:>>>strs=['Hello','China','Hello','Guangzhou']#多个字符串存放在列表中>>>result=''.join(strs)#调用join(),依次连接列表中的元素>>>print(result)HelloChinaHelloGuangzhou4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.5复制使用重复运算符“*”实现字符串的复制。“*”需要一个字符串对象和一个整数,产生1个新的字符串对象。新的字符串对象是由原字符串复制而成,复制的次数为给出的整数值,而复制字符串时,字符串和整数的顺序无关。4.1字符串的基本操作4.1.5复制4.1字符串的基本操作4.1.5复制>>>str='Guangzhou'>>>str*3#str3次复制'GuangzhouGuangzhouGuangzhou'>>>3*str#str3次复制'GuangzhouGuangzhouGuangzhou'>>>(str+'')*3'GuangzhouGuangzhouGuangzhou'>>>str*strTraceback(mostrecentcalllast):File"<pyshell#83>",line1,in<module>str*strTypeError:can'tmultiplysequencebynon-intoftype'str'4.1字符串的基本操作4.1.5复制4.1字符串的基本操作4.1.6截取方法1:“索引”“切片

”来截取字符串获取子串。方法2:使用split()来获取子串。split()的语法如下:split([char][,num])[n]参数char表示用于分割的字符,默认的分割字符是空格。参数num表示分割的次数。默认情况下,将根据字符char在字符串中出现的个数来分割子串。函数的返回值是由子串组成的列表。参数n表示取第几个分片。split()就是将一个字符串分裂成多个字符串组成的列表。4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four" >>>print(sentence.split())#使用空格获取子串['Jane','said:','one,','two,','three,','four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(","))#使用逗号获取子串['Janesaid:one','two','three','four']>>>print(sentence.split(",",2))#使用逗号获取子串,num值为2['Janesaid:one','two','three,four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(",")[2])#使用逗号获取索引为2的分片three>>>print(sentence.split(",")[0])#使用逗号获取索引为0的分片Janesaid:one>>>print(sentence.split()[0])#使用空格获取索引为0的分片Jane4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.7比较1.使用“==”、“!=”、“<”、“>”运算符(1)单字符字符串的比较>>>'a'=='a'#两个字符相同,返回真True>>>'a'=='A'#两个字符不相同,返回假False>>>'a'!='A'#ord(a)=97,ord(A)=65,97!=65返回真True>>>'a'>'A'#ord(a)=97,ord(A)=65,97>65返回真True>>>'1'<"2"True4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.7比较1.使用“==”、“!=”、“<”、“>”运算符(2)多字符字符串的比较>>>'abs'<'cde'#索引位置0的’a’<’c’True>>>'abc'<'abd'#索引位置2的’c’<’d’True>>>'abc'>'abcd'#'abc'都相等,较长的字符串更大False>>>''<'a'#空字符串比其他字符串都小True4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.7比较2.使用startswith()、endswith()startswith()声明为:startswish(substr,[start[,end]])参数substr是与源字符串开头部分比较的子串。参数start表示开始比较的位置。参数end表示比较结束的位置。即在“start:end”范围内搜索子串substr。如果字符串以substr开头,则返回True,否则返回False。endswith()的参数与返回值与startswith()类似,不同的是endswith()从源字符串的尾部开始搜索。startswith()、endswith()不能用于比较源字符串中任意部分的子串。4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.7比较2.使用startswith()、endswith()>>>str="Howareyou">>>print(str.startswith("How"))#比较str的开头部分”How”True对比>>>str="Howareyou">>>print(str.endswith("you",6))True>>>print(str.endswith("you",6,10))False>>>print(str.endswith("you",6,len(str)))True4.1字符串的基本操作4.1.7比较4.1字符串的基本操作4.1.8长度与最值>>>str="HelloWorld">>>len(str)#求字符串str的长度10>>>max(str)#求字符串str中最大的字符'r'>>>min(str)#求字符串str中最小的字符'H'>>>max('bcd','fig','abcd','xyz','abab')#求多个字符串中最大的字符串'xyz'>>>min('bcd','fig','abcd','xyz','abab')#求多个字符串中最小的字符串'abab'4.1字符串的基本操作4.1.8长度与最值4.1字符串的基本操作4.1.9in运算符in运算符用于检查集合的成员,需要两个参数:测试字符串和可能包含测试字符串的字符串。形式如下:str1instr2如果测试字符串str1包含在str2中,且测试字符串序列必须完全相同则返回True,否则返回False。4.1字符串的基本操作4.1.9in运算符4.1字符串的基本操作4.1.9in运算符>>>word="China">>>'h'inwordTrue>>>'b'inwordFalse>>>'na'inwordTrue>>>'an'inword#测试字符串序列不相同False4.1字符串的基本操作4.1.9in运算符4.1字符串的基本操作4.2.1字符串的格式化输出Python支持格式化字符串的输出。基本的用法是将一个值插入一个有字符串格式符

%s的字符串中。>>>print("Mynameis%sandweightis%dkg!"%('Zara',21))MynameisZaraandweightis21kg!4.2字符串格式化4.2.1字符串的格式化输出4.2字符串格式化4.2.1字符串的格式化输出格式字符串中的信息和其他任何字符串一样进行显示。特殊情况是,用百分号(%)开头的特殊字符序列表明在字符串中出现%的位置,将会做一次替换。用命令结尾处圆括号中的数据来替换%。上面的实例中,用“%s”替代格式字符串中的字符串,用“%d”替代格式字符串中的数字(“d”为十进制整数)。格式化指令与数据项,按顺序由左到右进行匹配,第一条格式命令对应第一个数据项,依次类推。字符串的格式化语法如下所示:“%s”%str1“%s%s…”%(str1,str2…)4.2字符串格式化如果要格式化多个值,元组中元素的顺序必须与格式化字符串中替代符的顺序一致4.2.1字符串的格式化输出4.2字符串格式化如果要格式化4.2.1字符串的格式化输出使用%f可以格式化浮点数的精度。根据指定的精度四舍五入。>>>print("浮点型数字:%f"%1.23)#默认情况下输出小数点后6位数字浮点型数字:1.230000>>>print("浮点型数字:%.1f"%1.23)#四舍五入后的结果为1.2浮点型数字:1.2>>>print("浮点型数字:%.3f"%1.2355)#格式化小数点后3位并四舍五入浮点型数字:1.2364.2字符串格式化4.2.1字符串的格式化输出4.2字符串格式化4.2.1字符串的格式化输出表4-1Python格式化字符串的替代符及其含义4.2字符串格式化符号含义%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整型%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科学计数法格式化浮点数%E作用同%e,用科学计数法格式化浮点数%g根据值的大小决定使用%f或%e%G作用同%g,根据值的大小决定使用%f或%e%p用十六进制数格式化变量的地址4.2.1字符串的格式化输出4.2字符串格式化符号4.2.2宽度和精度可以为每个数据项指定字段显示的宽度(即数据占据的空格数)。如果宽度值为正值,则是在指定的宽度内右对齐;若指定了负值,则数据在指定的宽度内左对齐。>>>print("%sis%dyearsold."%("Ben",30))Benis30yearsold.>>>print("%10sis%-10dyearsold."%("Ben",30))Benis30yearsold.4.2字符串格式化4.2.2宽度和精度4.2字符串格式化4.2.2宽度和精度使用“%f”来控制浮点值的小数点右侧的位数,即精度。>>>importmath>>>print(math.pi)#未指定精度

3.141592653589793>>>print("Piis%.2f"%(math.pi))#保留小数点后2位Piis3.14>>>print("Piis%8.2f"%(math.pi))#指定宽度和精度,保留小数点后2位Piis3.14>>>print("Piis%8.4f"%(math.pi))#指定宽度和精度,保留小数点后4位Piis3.14164.2字符串格式化4.2.2宽度和精度4.2字符串格式化4.2.3字符串转义字符计算机中存在可见字符和不可见字符。可见字符指的是键盘上的字母、数字和符号。不可见字符指的是换行、回车等字符。对于不可见字符可以使用转义字符来表示。Python中转义字符的用法和Java相同都是使用“\”作为转义字符。>>>print("firstline\nsecondline")firstlinesecondline>>>print("firstword\tsecondword")firstword secondword4.2字符串格式化4.2.3字符串转义字符4.2字符串格式化4.2.3字符串转义字符去除字符串中的转义字符。>>>str="\thelloworld\n">>>print("直接输出:",str)直接输出: helloworld

>>>print("strip()后输出:",str.strip())strip()后输出:helloworld>>>print("lstrip()后输出:",str.lstrip())lstrip()后输出:helloworld>>>print("rstrip()后输出:",str.rstrip())rstrip()后输出: helloworld4.2字符串格式化4.2.3字符串转义字符4.2字符串格式化1.字符串测试字符串测试用于检测字符串是否为特定格式。如果测试的结果为真,返回True,否则返回False。>>>s="Helloworld">>>s.startswith('h')#测试字符串s是否以’h’开头

False>>>s.endswith("d")#测试字符串s是否以’d’结尾True>>>s.isupper()#测试字符串s是否只包含大写字母False>>>s.islower()#测试字符串s是否只包含小写字母False>>>s.isprintable()#测试字符串s是否只包含可打印字符True4.3常用字符串函数和方法1.字符串测试4.3常用字符串函数和方法2.字符串查找>>>s="HelloChina">>>print(s.find("H"))#在字符串s中查找"H"0>>>print(s.index("H"))#在字符串s中查找"H"0>>>print(s.rfind("H"))#在字符串s中从右往左查找"H"0>>>print(s.find("an"))#在字符串s中查找"an"-14.3常用字符串函数和方法2.字符串查找4.3常用字符串函数和方法3.字符串替换>>>s='one,twoandthree'>>>s1='one,\ttwo\tand\tthree'>>>print(s)one,twoandthree>>>print(s.replace('one','1'))#将字符串s中的每个’one’替换为'1'1,twoandthree>>>print(s.replace('one',''))#将字符串s中的每个’one’替换为'',twoandthree4.3常用字符串函数和方法3.字符串替换4.3常用字符串函数和方法3.字符串替换>>>pr

温馨提示

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

评论

0/150

提交评论