【Python学习笔记Day14】3.5 字符串(深度理解常用的一些字符串方法)

1. 字符串的分片操作

对列表的操作 分片 Silce 也可以对字符串操作

str1 = "I love weivid"
name1 = str1[:6]
print(name1) # 打印出前6 个字符

在这里插入图片描述

2. 访问字符串中的单个字符

python中由于不像其他语言有字符(char)类型,访问字符串中的单个字符时,python提供的方法
将单个字符看成为 只有一个字符的 字符串
通过索引index的方式

print(str1)
char = str1[5]      #通过索引访问字符串中 单个子字符
print(char)

在这里插入图片描述

3. 修改字符串中的字符

如对字符串中间进行插入、拼接操作

str2 = str1[:6] + "insert string" + str1[6:]    #拼接
print(str2)

在这里插入图片描述

4. 字符串的操作方法

下面列出一些常用的方法

字符串方法 作用
capitalize() 把字符串的第一个字符改为大写
casefold() 把整个字符串的所有字符改为小写
center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串
count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。
encode(encoding=‘utf-8’, errors=‘strict’) 以 encoding 指定的编码格式对字符串进行编码。
endswith(sub[, start[, end]]) 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
expandtabs([tabsize=8]) 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。
find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
index(sub[, start[, end]]) 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
isdecimal() 如果字符串只包含十进制数字则返回 True,否则返回 False。
isdigit() 如果字符串只包含数字则返回 True,否则返回 False。
islower() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。
isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。
isspace() 如果字符串中只包含空格,则返回 True,否则返回 False。
istitle() 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。
isupper() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。
join(sub) 以字符串作为分隔符,插入到 sub 中所有的字符之间。
ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
lower() 转换字符串中所有大写字符为小写。
lstrip() 去掉字符串左边的所有空格
partition(sub) 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 (‘原字符串’, ‘’, ‘’)
replace(old, new[, count]) 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
rfind(sub[, start[, end]]) 类似于 find() 方法,不过是从右边开始查找。
rindex(sub[, start[, end]]) 类似于 index() 方法,不过是从右边开始。
rjust(width) 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。
rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找。
rstrip() 删除字符串末尾的空格。
split(sep=None, maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
splitlines(([keepends])) 在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。。
startswith(prefix[, start[, end]]) 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。
strip([chars]) 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。
swapcase() 翻转字符串中的大小写。
title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
translate(table) 根据 table 的规则(可以由 str.maketrans(‘a’, ‘b’) 定制)转换字符串中的字符。
upper() 转换字符串中的所有小写字符为大写。
zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。

简单介绍以下各个方法的一些使用注意的地方

1)capitalize()方法

把字符串的第一个字符改为大写

str1 = "xiaoxie"
str1_1 = str1.capitalize()  #开头大写,返回一个新的字符串,可以被赋值
print(str1_1)

在这里插入图片描述

2) casefold()方法

把整个字符串的所有字符改为小写

str2 = "SEsfdsSdss"
str2.casefold() #将所有字符串大写改为小写,
#注意返回新的字符串,并没有改变 源字符串
print(str2)
str2_2 = str2.casefold()
print(str2_2)

在这里插入图片描述

3) center(wodth)方法

把字符串居中,并使用空格填充至长度为width 的新字符串

str2.center(40) #将字符串str2 居中,40为填充的长度
str2_3 = str2.center(40)
print(str2_3)   

在这里插入图片描述

4) count(sub[,start[,end]])方法

返回sub在字符串里面出现的次数,start 和end 参数表示范围,可选

str3 ="I love weivid xixi"
print(str3)
str3_1 = str3.count('xi')  #字符串'xi' 在字符串中出现的次数
print(str3_1)   #打印‘xi’出现2次

在这里插入图片描述

5) encode(encoding=‘utf-8’,errors=‘strict’)方法

以encoding 指定的编码格式对字符串进行编码
#编码,后续提到

6) endswith(sub[,start[,end]])方法

检查字符串是否以sub 子字符串结束,如果时返回True,否则返回False. start和end 参数表示范围,可选

str4 ="I love weivid xixi"
print(str4)
str4_1 = str4.endswith('xi')  #检查字符串是否以'xi' 
print(str4_1)   # 结果返回为True

在这里插入图片描述

7) expandtabs([tabsize=8])方法

把字符串中的tab符号 \t 转换为空格,如不指定参数,默认的空格数为tabsize = 8

str5 = "I\tlove\tweivid  wangwei"
print(str5) #注意打印的结果,I后有七个空格,love后有四个空格,weivid后有两个
str5_1 = str5.expandtabs()  #将字符串中的\t替换为空格,默认为8个空格

在这里插入图片描述

8) find(sub[,start[,end]])方法

检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1,start和end参数表示范围,可选

str6 = "I love weivid xixi"
print(str6)
str6_1 = str6.find('efc')
print(str6_1)   # 打印—1, 表示字符串里没有efc
str6_2 = str6.find('wei')
print(str6_2)   # 打印 7, 表示从字符串的第八位开始有wei

在这里插入图片描述

9)index(sub[,start[,end]])方法

跟find 方法一样,不过如果sub不在字符串中会产生一个异常

str6 = "I love weivid xixi"
print(str6)
#str6_1 = str6.index('efc')
#print(str6_1)   # 异常
str6_2 = str6.find('wei')
print(str6_2)   # 打印 7, 表示从字符串的第八位开始有wei

在这里插入图片描述
find 相较于index来说,比较和谐,一般来说不愿意看到异常

10)isalnum()方法

如果字符串至少有一个字符并且所有字符都是字母或数字,则返回True,否则返回False

11)isalpha()方法

如果字符串至少有一个字符并且所有字符都是字母,则返回True,否则返回False

12)isdecimal()方法

如果字符串只包含十进制数字,则返回True,否则返回False

13)isdigit()方法

如果字符串只包含数字,则返回False

14)islower()方法

如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True,否则返回False
如果字符串中是中文,则返回False

str7 = "陈磊"
str7_1 = str7.islower()     #中文返回False
print(str7_1)

在这里插入图片描述

15)isnumeric()方法

如果字符串中只包含数字字符,则返回True,否则返回False

16)isspace()方法

如果字符串中只包含看空格,则返回True,否则返回False

17)istitle()方法

如果字符串是标题化(所有的单词都是大写开始,其余都是小写),则返回True,否则返回False

str8 = "Weivid"
str8_1 = str8.istitle()     #返回True
print(str8_1)
str8 = "WeiviD"
str8_1 = str8.istitle()     #返回False
print(str8_1)

在这里插入图片描述

18)isupper()方法

如果字符串至少包含一个区分大小写的字符并且这些字符都是大写,则返回True,否则返回False

19)join(sub)方法

以字符串作为分隔符,并使用空格填充所有的字符之间

str9 = "Weivid"
str9_1 = str9.join('123456')     #字符串被原始的字符串隔开
print(str9_1)

在这里插入图片描述

20)ljust(width)方法

返回一个左对齐的字符串,并使用空格填充至长度为width的新字符串

21)lower()方法

转换字符串中所有大写字符为小写

22)lstrip()方法

去掉字符串左边的所有空格

str10 = "     I love Weivid"
str10_1 = str10.lstrip()     #去掉左边所有空格
print(str10_1)

在这里插入图片描述

23)partition(sub)方法

找到子字符串sub,把字符串分成一个3元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回(‘原字符串’,’’,’’)

str11 = "I love Weivid"
str11_1 = str11.partition('ve')     #
print(str11_1)

在这里插入图片描述

24)replace(old,new[,count])方法

把字符串中的old替换成new子字符串,如果count指定,则替换不超过count次

str12 = "I love Weivid ve"
str12_1 = str12.replace('ve', 'wang')     #将所有的ve替换为wang
print(str12_1)

在这里插入图片描述

25)rfind(sub[,start[,end]])方法

类似与find()函数,是从右边开始
#对于很长的字符串,比如网页的信息,可以看作为一个很长的字符串,有时候需要从左或者是往右进行查看字符串,效率是不一样的

26)rindex(sub[,start[,end]])方法

类似于Index()函数,是从右边开始

27)rjust(width)方法

返回一个右对齐的字符串,并使用空格填充至长度为width的新字符串

28)rpartition(sub)方法

类似于partition()函数,是从右边开始

29)rstrip()方法 删除字符串末尾的空格
30)split(sep=None,maxsplit=-1)方法

不带参数默认是以空格分隔符切片字符串,如果maxsplit参数有设置,
则仅分割mxsplit个字符串,返回切片后的子字符串拼接的列表

str13 = "I love Weivid"
str13_1 = str13.split()     #默认是以空格,就会切片,形成一个列表
print(str13_1) 

str13_2 = str13.split('ve')     # 以‘ve’作为分隔符,切片形成列表
print(str13_2)

在这里插入图片描述

31)splitlines(([keepends]))方法

按照’\n’分隔,返回一个包含各行作为元素的列表,如果keepends参数指定,则返回前keepends行

32)startswith(prefix[,start[,end]])方法

检查字符串是否以prefix开头,是则返回True,否则返回False,start和end参数可以指定范围检查,可选

33)strip([chars])方法

删除字符串前边和后边所有空格,chars参数可以定制删除的字符,可选
#字符串中间的空格不会删除

str14 = "       I love Weivid              "
str14_1 = str14.strip()     #
print(str14_1)

str14 = "ssssaaaasssss"
str14_2 = str14.strip('s')  #删除首位以s开头或者结尾的字符串
print(str14_2)

在这里插入图片描述

34)swapcase()方法

翻转字符串的大小写

35)title()方法

返回标题化(所有的单词都是以大写开始,其余是小写)的字符串

36)translate(table)方法

根据table的规则(可以由str.maketrans(‘a’,‘b’)定制)转换字符串中的字符

str15 = "ssssaaaassss"
str15_1 = str15.translate(str.maketrans('s','b'))
print(str15_1)          #按照table的转换规则,将所有的s替换为b

print(str.maketrans('s','b'))       #返回assic码,{115:98},115,98分别为s 和 b 的assic码

在这里插入图片描述

37)upper()方法

转换字符串中的所有小写字符为大写

38)zfill(width)方法

返回长度为width的字符串,原字符串右对齐,前边用0填充

发布了105 篇原创文章 · 获赞 71 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/vivid117/article/details/104455944
今日推荐