零基础学Python 之 5.1 字符串常用操作

5.1.1 拼接字符串

使用“ + ”运算符可完成对多个字符串的拼接,“ + ”运算符可以连接多个字符串并产生一个字符串对象。

例如:

字符串不允许与其他字符串拼接,否则会报错。

 

5.1.2 计算字符串的长度

 由于不同的字符所占字节数不同,所以要计算字符串的长度,需要先了解各字符所占的字节数。在python中,数字、英文、小数点、下划线和空格占一个字符,一个汉字可能会占2~4个字节,占几个字节取决于采用的编码。汉字在GBK/GB2312编码中占2个字节,在UTF-8/unicode编码中一般占用3个字节(或4个字节)。

在Python中,提供了len()函数计算字符串的长度,语法格式如下:

len(string)

 从上面结果看,在默认的情况下,通过len()函数计算字符串的长度时,不区分英文、数字和汉字,所有的字符都按一个字符计算。

在实际开发时,有时需要获取字符串实际所占的字节数,即如果采用UTF-8编码,汉字占3个字节,采用GBK或者GB2312时,汉字占2个字节,这时,可以通过encode()方法进行编码后再进行获取。

例如:

 5.1.3 截取字符串

由于字符串也属于序列,所以要截取字符串,可以采用切片方法实现。语法格式如下:

string[start : end : step]

说明:字符串的索引同序列的索引是一样的,也是从0开始,并且每个字符占一个位置。

注意:在进行字符串截取时,如果指定的索引不存在,则会抛出异常,要解决该问题,可以采用try...except语句捕获异常。例如:

 

5.1.4 分割、合并字符串

 在Python中,字符串对象提供了分割和合并字符串的方法。分割字符串是把字符串分割为列表,而合并字符串是把列表合并为字符串,分割字符串和合并字符串可以看作是互逆操作。

1. 分割字符串

字符串对象的split()方法可以实现字符串分割,也就是把一个字符串按照指定的分隔符切分为字符串列表。该列表的元素中,不包括分隔符。split()方法的语法格式如下:

str.split(sep,maxsplit)

sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行、制表           符等)。

maxsplit:可选参数,用于指定分割次数,如果不指定或者为-1,则分割次数没有限制,否则返回结                果列表的元素个数,个数最多为maxsplit+1。

返回值:分割后的字符串列表。该列表的元素为以分割符为界限分割的字符串(不含分隔符),                  当该分隔符前面(或与前一个分隔符之间)无内容时,将返回一个空字符串列表。

说明:在split()方法中,如果不指定sep参数,那么也不能指定maxsplit参数。

说明:在使用split()方法时,如果不指定参数,默认采用空白符进行分割,这时无论有几个空格或者空白符都将作为一个分割符进行分割。如果指定一个分割符,那么当这个分割符出现多个时,就会每个分割一次,没有得到内容的,将产生一个空元素。 

2. 合并字符串

合并字符串与拼接字符串不同,它会将多个字符采用固定的分隔符连接在一起。

合并字符串可以使用字符串对象的join()方法实现,语法格式如下:

strnew = string.join(iterable)

strnew:表示合并后生成的新字符串

string:字符串类型,用于指定合并时的分隔符

iterable:可迭代对象,该迭代对象中的所有元素(字符串表示)将被合并为一个新的字符串。

5.1.5 检索字符串

 1. count()方法

count()方法用于检索指定字符串在另一个字符串中出现的次数。如果检索的字符串不存在,则返回0,否则返回出现的次数。其语法格式如下:

str.count(sub[ ,start[ ,end ] ])

str:表示源字符串

sub:表示要检索的字符串

start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。

end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。

2. find()方法

该方法用于检索是否包含指定的字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该字符串时的索引。语法格式如下:

str.find(sub [ , start [ , end ] ] ) 

str:表示源字符串

sub:表示要检索的字符串

start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。

end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。

说明:如果只是想要判断指定的字符串是否存在,可以使用in关键字实现。例如上面的字符串                  strnew中是否存在@符号,可以使用print('@' in str1),如果存在就返回True,否则就返回                  False。另外,也可以根据find()方法的返回值是否大于-1来确认指定的字符串是否存在。 

如果输入的字符串在源字符串中不存在,将返回-1。

说明:Python的字符串对象还提供了rfind()方法,其作用与find()方法类似,只是从字符串右边开               始查找。 

3. index()方法

index()方法同find()方法类似,也是用于检索是否包含指定的字符串。只不过是使用index()方法,当指定的字符串不存在时会抛出异常。其语法格式如下:

str.index(sub[ , start [ , end ] ] )

str:表示源字符串

sub:表示要检索的字符串

start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。

end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。

说明: Python的字符串对象还提供了rindex()方法,其作用与index()方法类似,只是从右边开始查             找。 

4. startswith()方法

startswith()方法用于检索字符串是否以指定子字符串开头。如果是则返回True,否则返回False.其语法格式如下:

str.startswith(prefix[ , start[ , end ] ])

str:表示源字符串

prefix:表示要检索的字符串

start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。

end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。

5. endswith()方法

endswith()方法用于检索字符串是否以指定字符串结尾。如果是则返回True,否则返回False。其语法格式为:

 str.endswith(suffix[ , start [ , end ] ] )

str:表示源字符串

suffix:表示要检索的字符串

start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。

end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。

5.1.6 字母的大小写转换

 在Python中,字符串对象提供了lower()方法和upper()方法进行字母的大小写转换,即可用于将大写字母转换为小写字母或者将小写字母转换为大写字母。

1. lower()方法

lower()方法用于将字符串中的大写字母转换为小写字母。

lower()方法的语法格式如下:

str.lower()

2. upper()方法

upper()方法用于将字符串中的小写字母转换为大写字母。

upper()方法的语法格式为:

str.upper()

5.1.7 去除字符串中的空格和特殊字符

 1. strip()方法

strip()方法用于去掉字符串左、右两侧的空格和特殊字符,语法格式如下:

str.strip([ chars ])

chars:为可选参数,用于指定要去除的字符,可以指定多个。如果设置chars为“ @. ”,则去除左、右两侧包括的“@”或“ ."。如果不指定chars参数,默认将去除空格、制表符”\t“、回车符”\r"、换行符“\n"等。

2. lstrip()方法

lstrip()方法用于去掉字符串左侧的空格和特殊字符,语法格式如下:

str.lstrip([ chars ]) 

chars:为可选参数,用于指定要去除的字符,可以指定多个。如果设置chars为“ @. ”,则去除左、右两侧包括的“@”或“ ."。如果不指定chars参数,默认将去除空格、制表符”\t“、回车符”\r"、换行符“\n"等。

3. rstrip()方法

rstrip()方法用于去掉字符串右侧的空格和特殊字符,语法格式如下:

str.rstrip([ chars ]) 

chars:为可选参数,用于指定要去除的字符,可以指定多个。如果设置chars为“ @. ”,则去除左、右两侧包括的“@”或“ ."。如果不指定chars参数,默认将去除空格、制表符”\t“、回车符”\r"、换行符“\n"等。

5.1.8 格式化字符串

 格式化字符串是指先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为占位符),而这些符号还不会显示出来。

1. 使用“%”操作符

语法格式如下:

‘%[-][+][0][m][.n]格式化字符’%exp

-:可选参数,用于指定左对齐,正数前方无符号,负数前方加负号

+:可选参数,用于指定右对齐,正数前方加正号,负数前方加负号

0:可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般与m参数         一 起使用)

m:可选参数,表示占有宽度

.n:可选参数,表示小数点后保留的位数

格式化字符:用于指定类型,其值如下表。

 

2. 使用字符串对象的format()方法

字符串对象提供了format()方法用于进行字符串格式化,语法格式如下:

str.format(args) 

args:用于指定要转换的项,如果有多项,则用逗号进行分隔

在创建模板时,需要使用“{}”和“:”指定占位符,语法格式如下:

{[index] [ : [ [ fill ] align] [sign] [#] [width] [.precision] [type] ]}

index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省              略,则根据值得先后顺序自动分配。

fill:可选参数,用于指定空白处填充的字符。

align:可选参数,用于指定对齐方式(值为“ < ”时表示内容左对齐;值为“ > ”时表示内容右对齐;             值为“ = ”时表示内容右对齐,只对数字类型有效,即将数字放在填充字符的最右侧;值为“^”           时表示内容居中),需要配合width一起使用。

sign:可选参数,用于指定有无符号数(值为“+”表示正数加正号,负数加负号;值为“-”表示正数不          变,负号加负号,值为空格表示正数加空格,负数加负号)

#:可选参数,对于二进制数、八进制数和十六进制数,如果加上#,表示会显示0b/0o/0x前缀,否          则不显示前缀。

width:可选参数,用于指定所占宽度。

.precision:可选参数,用于指定保留的小数位数。

type:可选参数,用于指定类型。

 说明:当一个模板中,出现多个占位符时,指定索引位置的规范需统一,即全部采用手动模式或               者全部采用自动。例如定义“ ‘我是数值:{:d},我是字符串:{1:s}' ”模板是错误的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值