Python-字符串常见操作

下面定义字符串s=“I want to study every day,day day up ”,以s为例,学习字符串常见的操作(字符串方法)

1.find()方法

定义:find()方法用于检测字符串中是否包含子字符串str。如果指定beg(开始)和end(结束)范围,就检查是否包含在指定范围内。如果包含子字符串,就返回开始的索引值;否则返回-1。

格式:string.find(str, start=0, end=len(string))

说明:str:要查找的字符串,start:开始的位置,end:结束的位置

类似:rfind,从字符串右边开始查找

注意:字符串的find方法返回的不是布尔值。如果返回0,就表示在索引0处找到了子字符串。

例如:

s = "I want to study every day,day day up"
print(s.find('I'))
print(s.find('day'))
print(s.find('good'))
print(s.find('ev',10,21))

运行结果:

0
22
-1
16

2.join()方法

定义:join()方法用于将序列中的元素以指定字符连接成一个新字符串。

格式:string.join(sequence)

说明:sequence代表要连接的元素序列

注意:进行join操作时,调用和被调用的对象都必须是字符串,任意一个不是字符串都会报错。

例如:

s1 = ['1','2','3','4','5']
mark = "+"
print(mark.join(s1))

运行结果:

1+2+3+4+5

3.lower()方法

定义:lower()方法用于将字符串中所有大写字符转换为小写。

格式:string.lower()

说明:string代表指定检索的字符串,该方法不需要参数。返回结果为字符串中所有大写字符转换为小写后生成的字符串。

例如:

print(s.lower())

运行结果:

i want to study every day,day day up

4.upper()方法

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

格式:string.upper()

说明:string代表指定检索的字符串,该方法不需要参数。返回结果为小写字母转换为大写字母的字符串。

例如:

print(s.upper())

运行结果:

I WANT TO STUDY EVERY DAY,DAY DAY UP

5.swapcase()方法

定义:swapcase()方法用于对字符串的大小写字母进行转换,将字符串中的大写字母转换为小写、小写字母转换为大写。

格式:string.swapcase()

说明:string代表指定检索的字符串,该方法不需要参数。返回结果为大小写字母转换后生成的新字符串。

例如:

print(s.swapcase())

运行结果:

i WANT TO STUDY EVERY DAY,DAY DAY UP

6.replace()方法

定义:replace()方法把字符串中的old(旧字符串)替换成new(新字符串),如果指定第3个参数max,替换次数就不超过max次。

格式:string.replace(old, new,[max])

说明:string代表指定检索的字符串;old代表将被替换的子字符串;new代表新字符串,用于替换old子字符串;max代表可选字符串,替换次数不超过max次。返回结果为字符串中的old(旧字符串)替换成new(新字符串)后生成的新字符串,如果指定第3个参数max,替换次数就不超过max次。

例如:

print(s.replace('day','month'))
print(s.replace('day','month',1))
print(s.replace('day','month',2))
print(s.replace('day','month',3))

运行结果:

I want to study every month,month month up
I want to study every month,day day up
I want to study every month,month day up
I want to study every month,month month up

7.split()方法

定义:split()方法通过指定分隔符对字符串进行切片,如果参数num有指定值,就只分隔num个子字符串。这是一个非常重要的字符串方法,是join的逆方法,用来将字符串分割成序列。

格式:string.split(st="", num=string.count(str))

说明:string代表指定检索的字符串;st代表分隔符,默认为空格;num代表分割次数。返回结果为分割后的字符串列表。如果不提供分隔符,程序就会把所有空格作为分割符。操作中可以指定分隔符和分割次数,若指定分割次数,则从左往右检索和分隔符匹配的字符,分割次数不超过指定次数;若不指定分割次数,则所有匹配的字符都会被分割。

例如:

print(s.split())
print(s.split('t'))
print(s.split('a'))
print(s.split('a',1))

运行结果:

['I', 'want', 'to', 'study', 'every', 'day,day', 'day', 'up']
['I wan', ' ', 'o s', 'udy every day,day day up']
['I w', 'nt to study every d', 'y,d', 'y d', 'y up']
['I w', 'nt to study every day,day day up']

8.strip()方法

定义:strip()方法用于移除字符串头尾指定的字符(默认为空格)。

格式:string.strip([chars])

说明:string代表指定检索的字符串;chars代表移除字符串头尾指定的字符。返回结果为移除字符串头尾指定的字符生成的新字符串。

类似:lstrip,删除字符串左边字符;rstrip,删除字符串右边的字符

注意:strip方法只去除头尾匹配的字符,中间匹配的字符不会去除。

例如:

s2 = "---good-good-study---"
print(s2.strip('-'))

运行结果:

good-good-study

9.translate()方法

定义:translate()方法根据参数table给出的表(包含256个字符)转换字符串的字符,将要过滤掉的字符放到del参数中。

格式:string.translate(table,[deletechars])

说明:string代表指定检索的字符串;table代表翻译表,翻译表通过maketrans方法转换而来;deletechars代表字符串中要过滤的字符列表。返回结果为翻译后的字符串。

例如:

intab = "adefs"
outtab ="12345"
transtab = str.maketrans(intab,outtab)
s3 = "just do it"
print(s3.translate(transtab))

运行如下:

ju5t 2o it

由输出结果看到,有几个字符被替换成数字了,被替换的字符既在intab变量中,又在st变量中,如图4-1所示。对于既在intab中,又在st中的字符,使用outtab中对应的字符替换。由图4-1可知,intab中的字符d对应outtab中的字符2、字符s对应字符5,所以最后输出字符串中的s被替换成5、d被替换成2,这样就得到了最后我们看到的字符串ju5t 2o it。

posted @ 2020-04-19 16:16  s0ld1er  阅读(331)  评论(0编辑  收藏  举报