undefinedundefinedundefinedundefinedundefinedg串在一起;itrelinesonstringliteralconcatenation.'Python的《惯用语与反惯用语》HOWTO文档建议总是使用括号来包裹任何跨越多行的语句,而不是使用独占的换行符4.3Stringsslice和stride字符串的索引位置从0开始,直到字符串长度值减1。负索引位置也有效,在这种情况下,从最后一个字符到第一个字符计数。如果我们设置s='Python',下图显示了字符串所有有效的索引位置:切片操作有三种语法:seq[start]:从序列中提取起始位置的数据项。seq[start:end]:从开始到结束的数据项(不包括)。seq[start:end:step]:从开始到结束(不包括)的数据项被提取每一步字符。其中seq可以是任何序列,例如列表、字符或元组。开始、结束和步骤必须是整数。在第二种和第三种语法中,我们可以忽略任何整数索引值:如果起始索引值被忽略,则默认为0;如果忽略结束索引值,则默认为len(seq)。步骤可以是负值。如果为负值,则从末尾向起始方向提取。我们可以利用这个特性对序列进行倒序操作:In[40]:s='python'In[41]:s[::-1]Out[41]:'nohtyp'4.4字符串运算符和方法Sincestrings都是固定序列,所有可以用于固定序列的函数也可以用于字符串,包括用in做成员测试,用+=做追加操作,用*做复制操作等。Lets='ilikePython':语法说明示例s.capitalize()返回字符串s的副本,首字母大写'Ilikepython's.center(width,char)返回s中间的子字符串,oflengthwidth,paddedwithspacesoroptionallychar(astringoflength1)s.count(t,start,end)返回子字符串t在s(或在start:endslice)中出现的次数s.count('i')2s.encode(encoding,err)返回一个bytes对象,使用默认的编码格式或指定的编码格式表示字符串,并根据可选的err参数s.encode('gbk')处理错误b'i喜欢Python's.endswith(x,start,end)如果s(或start:endsliceofs)以字符串x(或元组x中的任何字符串)结尾,则返回Trues.endswith('n')trues.expandtabs(size)返回s的副本,其中tabs被替换为8个或指定数量的空格的)或-1如果没有找到。使用s.rfind()找到对应的最右边位置。s.find('like')2s.format(...)返回一份根据给定参数格式化的字符串,后面s.index(t,start,end)返回t在s(或最左边的位置)在start:endsliceofs)中,如果没有找到,将产生ValueError异常。如果你使用rindex()你可以从右边开始搜索。s.index('y')8s.isalnum()如果s不为空,且其中每个字符都是字母数字,则返回TrueFalses.isalpha()如果s不为空,且其中每个字符都是字母,则返回TrueFalses.isdecimal()如果s不为空并且其中的每个字符都是Unicodebase10数字,则返回TrueFalses.isidentifier()如果s不为空并且是有效标识符,则返回TrueFalses.islower()如果s至少有一个小写字符,且其所有小写字符均为小写,则返回TrueFalses.isnumeric()如果s不为空,且其中每个字符都是数字Unicode字符,如数字或小数,则返回TrueFalses.isprintable()如果s不是为空,并且其中的每个字符都是可打印的,包括空格但不包括换行符,如果s不为空则返回TrueTrues.isspace(),并且其中的每个字符都是可打印的字符都是空白字符,如果s返回TrueFalses.istitle()不为空,首字母大写,如果s至少有一个up,则返回TrueFalses.isupper()percase字符,其大写字符全部为大写,returnTrueFalses.join(seq)返回序列seq中每一项的连接结果,每一项用s分隔(可以为空)s.join(['first','second'])'firstilikePythonsecond's.ljust(width,char)返回左对齐字符串s的副本,长度为width的字符串,填充有空格或可选的char(长度为1的字符串)。使用s.rjust()右对齐,s.center()中间对齐s.lower()将s中的字符更改为小写'ilikepython's。maketrans(x[,y[,z]])static函数返回一个转换表,可以在str.translate()方法中使用。如果只有一个参数,则必须是dict类型,key键是一个长度为1的字符(unicode字符码或字符),value值是任意长度的字符串或None。key键对应的字符会被转换为value值对应的字符(字符串)。如果有两个参数,它们的长度必须相等,并且每个x字符将被转换为对应的y字符。如果有第三个参数,它对应的字符将被转换为None。m={'e':'f','o':'p'}s.maketrans(m){101:'f',111:'p'}s.partition(t)返回3个字符串的元组--strings在t的最左边,t,strings在t的最右边。如果t不在s中,则返回带有两个空字符串的s。使用s.rpartition()在t的最右边进行分区s.partition('like')('i','like','Python')s.replace(t,u,n)返回s的副本,其中每个(或最多n,如果给定)字符串t被替换为us.replace('like','love')'ilovePython's.split(t,n)返回字符串t中所需的字符串列表最多分裂n次。如果未给出n,则尽可能多地拆分,如果未给出t,则在空白处拆分。使用s.rsplit()从右边拆分s.split('i')['','l','kePython']s.splitlines(f)返回在行终止符处拆分的行列表,并删除行终止符(除非f为True)s.splitlines()['ilikePython']s.startswith(s,start,end)如果s(或在start:endofs处拆分)以字符串结尾ReturnsTrues.startswith('i')Trues.stripe(chars)以x(或元组x中的任何字符串)开头,返回s的副本,开头和结尾字符为空白字符(或字符串),s.lstripe()仅剥离开头对应的字符,s.rstripe()只去掉末尾对应的字符ILIKEpYTHON's.title()返回s的副本,每个单词的首字母大写,其余字母小写'ILikePython's.translate()返回使用参数映射转换的字符串。map必须是从unicode字符代码(整数)到unicode字符、字符串或None的映射表。映射到None的字符将被删除。m={'e':'f','o':'p'}s.maketrans(m)s.translate(trans)'ilikfPythpn's.upper()返回s'ILIKEPYTHON's的大写版本。zfill(w)返回s的副本,如果它比w短,则在开头添加零,使其长度为ws.zfill(15)'00ilikePython'Python还有一些其他库模块提供与字符串相关的功能functionality:difflib,用于显示文件或字符串的区别io模块的io.StringIO类用于读写字符串,就像对文件的读写操作textwrap,提供了一个对填充字符串进行包装的模块functionandmethodstring,它定义了一些有用的常量,比如ascii_letters和ascii_lowercase4.5str.format()来格式化一个字符串str.format()方法会返回一个新的字符串,在新的字符串中,将原来的替换字段字符串中的替换为适当格式的参数,可以是字符串或数字:In[103]:'{0}{1}'.format('这个苹果的价格是$',10)Out[103]:'这个苹果的价格是10'如果你需要在格式字符串中包含花括号,你需要overridethem:In[104]:'{0}{{{1}}}'.format('这个苹果的价格是$',10)Out[104]:'这个苹果的价格是${10}'str.format()替换字段可以使用以下任何一种语法格式:{field_name}{field_name!conversion}{field_name:format_specification}{field_name!conversion:format_specification}字段名是一个整数对应一个参数str.format()方法的一个键,或者方法名称的关键字参数In[105]:'{who}turned{age}thisyear.'.format(who='she',age=19)Out【105】:‘她今年19岁了ar。in[106]:'The{who}was{0}lastweek'.format(12,who='boy')Out[106]:'Theboywas12lastweek'字段名可以参考集合数据类型,例如:listIn[108]:'Bothof{0[0]}and{0[1]}aremyfriends.'.format(['Jenny','Danny'])Out[108]:'Both珍妮和丹尼是我的朋友。从Python3.1开始,我们可以省略字段名称:In[109]:'The{}was{}lastweek'.format('boy',12)Out[109]:'Theboywas12lastweek'欢迎来到关注(C与Python实战)[https://pythoncpp-1254282033....]
