欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

str.方法的整理(字符串类型内置方法的具体使用)

程序员文章站 2022-10-29 15:35:16
1、str.strip()、str.lstrip()和str.rstrip() 1' str.strip()(主要方法) 方法:str.strip(self,chars) 作用:移除字符串头与尾的指定字符。(核心是头与尾),移除的结果作为一个返回值,原字符串仍不变。 chars参数:需要移除的字符串 ......

1、str.strip()、str.lstrip()和str.rstrip()

1' str.strip()(主要方法)

方法:str.strip(self,chars)

作用:移除字符串的指定字符。(核心是),移除的结果作为一个返回值,原字符串仍不变。

chars参数:需要移除的字符串,如果省略或者为none,则默认移除空格。

要点

①:移除的字符串过程为从外向内,如果最外边没有要移除的字符串(假设里面却有的话),此时里面的那个字符串是不会被移除的。

s1='/a=abcd*/-a'
s2=s1.strip('a')
print(s1)
print(s2)

结果:
/a=abcd*/-a
/a=abcd*/-
需要移除的字符串是a,左边a在里面无法移除,右边最外边有一个a,可以移除

 

②:当要移除多个字符串(假设‘ab’)的时候,移除没有前后顺序,只有被移除对象两边最外面有b就移除b,移除后的最外边如果还有a则继续继续移除a。

#①
s1='b*a /abcd*/b a-'
s2=s1.strip('ab')
print(s1)
print(s2)

#结果:
b*a /abcd*/b a-
*a /abcd*/b a-
移除原则:由外向内,内部字符串只能等待外边全部移除完毕才能移除。

#②
s1='ba/abcd*/ a-ab'
s2=s1.strip('ab')
print(s1)
print(s2)

#结果:
ba/abcd*/ a-ab
/abcd*/ a-
先把b移除了,b移除完a就暴露到最外边了,这样就可以移除a。这里可以看到移除ab部分先后顺序,只要谁在外面谁先移除。

 

③:所以所strip移除字符串是有限制的,不是说有就移除,而是最外边有才移除,在里面不行,除非移除的多个字符串中的其他字符串被移除了,将这个字符串暴露到最外边了,才会开始移除。

s1='+/*-/=abcd*/*/+ -'
s2=s1.strip('/-*+= ')
print(s1)
print(s2)

结果:
+/*-/=abcd*/*/+ -
abcd
此时abcd两边都是一些特殊字符,想要去除就直接将所有字符放入需要移除的字符串中就可以全部移除了。不管怎么移除,肯定会依次将所有需移除的字符暴露在最外边。

 

 注:官方文档内容,供参考:

返回原字符串的副本,移除其中的前导和末尾字符。 chars 参数为指定要移除字符的字符串。 如果省略或为 none,则 chars 参数默认移除空格符。 实际上 chars 参数并非指定单个前缀或后缀;而是会移除参数值的所有组合:

>>>
>>> '   spacious   '.strip()
'spacious'
>>> 'www.example.com'.strip('cmowz.')
'example'
最外侧的前导和末尾 chars 参数值将从字符串中移除。 开头端的字符的移除将在遇到一个未包含于 chars 所指定字符集的字符时停止。 类似的操作也将在结尾端发生。 例如:

>>>
>>> comment_string = '#....... section 3.2.1 issue #32 .......'
>>> comment_string.strip('.#! ')
'section 3.2.1 issue #32'

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2' str.lstrip()和str.rstrip()

左移除和右移除(前移除和尾移除)

方法类似前面的str.strip(),只不过是只移除前面或者只移除尾部字符串。移除规则同上。

左移除:
s1='-*abc*-'
s2=s1.lstrip('-')
print(s1)
print(s2)

#结果:
-*abc*-
*abc*-
lstrip只移除左边的。右边的不管

右移除:
s1='-*abc*-'
s2=s1.rstrip('-')
print(s1)
print(s2)

#结果:
-*abc*-r
-*abc*
rstrip只移除右边的。左边的不管

 注:官方文档内容,供参考:

str.lstrip([chars])
返回原字符串的副本,移除其中的前导字符。 chars 参数为指定要移除字符的字符串。 如果省略或为 none,则 chars 参数默认移除空格符。 实际上 chars 参数并非指定单个前缀;而是会移除参数值的所有组合:

>>>
>>> '   spacious   '.lstrip()
'spacious   '
>>> 'www.example.com'.lstrip('cmowz.')
'example.com'


str.rstrip([chars])
返回原字符串的副本,移除其中的末尾字符。 chars 参数为指定要移除字符的字符串。 如果省略或为 none,则 chars 参数默认移除空格符。 实际上 chars 参数并非指定单个后缀;而是会移除参数值的所有组合:

>>>
>>> '   spacious   '.rstrip()
'   spacious'
>>> 'mississippi'.rstrip('ipz')
'mississ'

 

==================================================================================================

2、str.center()

方法:str.center(self,width,fillchar)

作用:返回总长度为width的字符串,原字符串在正中,使用指定的fillchar填充两边的空余部分

参数:指定的fillchar给的话,默认使用ascii空格符

fillchar为空时:用空格填充

s1='中国'
s2=s1.center(20)   #默认不传填充物
print(s2,'这是末尾')

#结果:
         中国          这是末尾
------------------------------------------------
fillchar不为空:填充指定字符串

s1='武汉'
s2=s1.center(20,'*')   #用*当做填充物
print(s2)

#结果:
*********武汉*********
------------------------------------------------
当width减去原字符串个数结果为奇数时候:左多右少

s1='高新'
s2=s1.center(7,'+')
print(s2)

#结果:
+++高新++

要点:

①:如果width小于等于原字符串的总长度,则返回原字符串。

s1='湖北武汉东湖高新'
s2=s1.center(7,'*')
print(s2)

#结果:
湖北武汉东湖高新

注:官方文档内容,供参考:

str.center(width[, fillchar])
返回长度为 width 的字符串,原字符串在其正中。 使用指定的 fillchar 填充两边的空位(默认使用 ascii 空格符)。 如果 width 小于等于 len(s) 则返回原字符串的副本。

 

 

未完待续......