Python字符串常用方法

1. 字符串拼接

(1) 如果是两个字符串常量拼接的话,可以直接将两个字符串紧挨着写在一起,也可以使用+连接符进行拼接;
(2)如果是使用字符串变量进行拼接的话,则只能使用+连接符进行拼接;
(3)如果需要将字符串和数字拼接在一起,必须先将数字转换成字符串,再通过+连接符进行拼接在一起。

1.将两个字符串常量拼接在一起
str = "hello" "world"
str = "hello" + "world"

2.使用变量进行连接
str1 = "hello"
str2 = "world"
str = str1 + str2

3.将字符串与数字进行拼接
name = "小明"
age = 18
str = name + "今年刚刚" + str(age) + "岁!"

2. 字符串截取

字符串是由多个字符构成的,本身就是一个序列,可以通过索引进行字符串的截取。
(1)字符串的索引从左往右依次从0开始递增;
(2)字符串的索引从右往左依次从-1开始递增;

str = "helloworld"
1.截取单个字符
print(str[1])   	## e
print(str[-1])		## d

2.截取多个字符串,具体格式为:strname[start : end : step]
strname:要进行截取的字符串;
start:开始截取的索引位置(包含该索引)。可以不指定,则默认为 0,也就是从字符串的开头截取;
end:结束截取的索引位置(不包含该索引,也就是截取到该索引前一位)。可以不指定,则默认截取到字符串最后一位;
step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。

str = "0123456789"
3.开始截取位置为1,结束截取位置9,指定step为2
str1 = str[1:9:2]   ## 1357

4.开始截取位置为1,结束截取位置9,不指定step
str2 = str[1:9] 	## 12345678

5.不指定开始截取位置,结束截取位置为9,不指定step
str3 = str[:9]		## 012345678

6.开始截取位置为1,不指定结束截取位置,不指定step
str4 = str[1:]		## 123456789

7.不指定开始截取位置,不指定结束截取位置,不指定step
str5 = str[::]		## 0123456789

8.不指定开始截取位置,不指定结束截取位置,指定step为3
str6 = str[::3]		## 0369

3. len()函数: 获取字符串长度或字节数

用于获取具体字符串的长度或者字符串占用多少个字节。

1.获取字符串长度
str = "helloworld"
print(len(str))   	## 10

2.获取字节数
str1 = "您好,欢迎光临world!"
print(len(str1.encode()))   	## 27, 默认采用UTF-8 编码,每个中文汉字及中文的标点符号占3个长度,每个英文字母及英文符号占1个长度
print(len(str1.encode('gbk')))  ## 20, 采用gunk 编码,每个中文汉字及中文的标点符号占2个长度,每个英文字母及英文符号占1个长度

4. split()函数: 分割字符串

将一个字符串按照指定的分隔符切分成多个子串,并将这些子串保存到列表中(不包含分隔符)返回。

1.基本语法格式如下:
str.split(sep,maxsplit)
str:表示要进行分割的字符串;
sep:用于指定分隔符,可以包含多个字符。此参数默认为 None;
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。

str = "www.baidu.com"
2.采用默认分隔符进行分割
print(str.split())   		## ['www.baidu.com']

3.采用指定字符串作为分隔符进行分割
print(str.split("."))		## ['www', 'baidu', 'com']

4.采用指定字符串作为分隔符进行分割,并限制生成的列表中元素最大的个数
print(str.split(".", 1))	## ['www', 'baidu.com']

5. join()函数:合并字符串

将列表(或元组)中多个字符串采用固定的分隔符连接成一个字符串。

1.基本语法格式如下:
newstr = str.join(iterable)
newstr:表示合并后生成的新字符串;
str:用于指定合并时的分隔符;
iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。

2.将列表中的字符串通过`.`合并成一个字符串
lst = ['www', 'baidu', 'com']
str = '.'.join(lst)
print(str)  		## www.baidu.com

6. count()函数:统计字符串出现的次数

用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。

1.基本语法格式如下:
str.count(sub, start, end)
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;
end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。

str = "www.baidu.com"
2.不指定开始和结束的检索位置,即检索整个字符串长度中`.`出现的次数
print(str.count(".")) 		## 2

3.从索引位置4开始到整个字符串末尾检索其中`.`出现的次数
print(str.count(".", 4))	## 1

4.从字符串开头到索引位置3之间检索其中`.`出现的次数
print(str.count(".", 0, 3))	## 0

7. find()、rfind()函数:查找字符串

用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。find()是从左边开始检索,而rfind()是从右边开始检索。

1.基本语法格式如下:
str.find(sub, start, end)
str:表示原字符串;
sub:表示要检索的目标字符串;
start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。

str = "www.baidu.com"
2.从整个字符串中检索首次出现 “.” 的位置索引
print(str.find('.'))		## 3
print(str.rfind('.'))		## 9

3.从索引位置4开始到整个字符串末尾检索首次出现 “.” 的位置索引
print(str.find('.', 4))		## 9

4.从索引位置1开始到索引位置4之间检索首次出现 “.” 的位置索引
print(str.find('.', 1, 4))	## 3

5.从字符串开头到索引位置3之间检索首次出现 “.” 的位置索引
print(str.find('.', 0, 3))	## -1

8. index()函数:获取字符串索引位置

用于获取指定字符串在某个字符串的索引位置,同 find() 方法作用类似,不同之处在于当指定的字符串不存在时,index() 方法会抛出异常。

1.基本语法格式如下:
str.index(sub, start, end)
str:表示原字符串;
sub:表示要检索的子字符串;
start:表示检索开始的起始位置,如果不指定,默认从头开始检索;
end:表示检索的结束位置,如果不指定,默认一直检索到结尾。

str = "www.baidu.com"
2.从整个字符串中检索首次出现 “.” 的位置索引
print(str.index('.'))		## 3

3.从索引位置4开始到整个字符串末尾检索首次出现 “.” 的位置索引
print(str.index('.', 4))	## 9

4.从索引位置1开始到索引位置4之间检索首次出现 “.” 的位置索引
print(str.index('.', 1, 4))	## 3

5.从字符串开头到索引位置3之间检索首次出现 “.” 的位置索引
print(str.index('.', 0, 3))	## 报错

9. ljust()、rjust()和center()函数:字符串对齐

用来进行文本对齐的方法,主要有左对齐,右对齐,剧中对齐等。

1.左对齐基本语法格式如下:
str.ljust(width, fillchar)
str.rjust(width, fillchar)
str.center(width, fillchar)
str:表示要进行填充的字符串;
width:表示包括 str 本身长度在内,字符串要占的总长度;
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。

str = "www.baidu.com"
2.将字符串进行左对齐
print(str .ljust(20))			## www.baidu.com       , 这里不够20长度,右边默认使用空格进行填充
print(str .ljust(20, "-"))		## www.baidu.com-------

3.将字符串进行右对齐
print(str .rjust(20))			##        www.baidu.com, 这里不够20长度,左边默认使用空格进行填充
print(str .rjust(20, "-"))		## -------www.baidu.com

4.将字符串进行居中对齐
str = "www.baidu.com"
print(str .center(20))			##    www.baidu.com    , 这里不够20长度,左右两边默认使用空格进行填充
print(str .center(20, "-"))		## ---www.baidu.com----

10. startswith()和endswith()函数:判断字符串是否以指定字符串开头和结尾

startswith()用于检索字符串是否以指定字符串开头,endswith()用于检索字符串是否以指定字符串结尾,如果是则返回True,反之返回 False。

1.基本语法格式如下:
str.startswith(sub, start, end)
str.endswith(sub, start, end)
str:表示原字符串;
sub:要检索的子串;
start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。

str = "www.baidu.com"
2.判断字符串是否以“www”子串开头
print(str.startswith("www"))		## True

3.判断字符串是否以“com”子串结尾
print(str.endswith("com"))			## True

4.判断字符串从索引位置3开始是否以“.”子串开始
print(str.endswith(".", 3))			## True

11. title()、lower() 和 upper()函数:字符串大小写转换

title()用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写;lower()用于将字符串中的所有大写字母转换为小写字母;upper()用于将字符串中的所有小写字母转换为大写字母。

str = "www.BaiDu.cOm"
1.将字符串中每个单词的首字母转成大写,其他字符转成小写
print(str.title())			## Www.Baidu.Com

2.将字符串中所有字母都转成小写
print(str.lower())			## www.baidu.com

3.将字符串中所有字母都转成大写
print(str.upper())			## WWW.BAIDU.COM

12. strip()、lstrip()和rstrip()函数:去除字符串中空格

strip():删除字符串前后(左右两侧)的空格或特殊字符;lstrip():删除字符串前面(左边)的空格或特殊字符;rstrip():删除字符串后面(右边)的空格或特殊字符。
注意:
由于string类型是是不可变的,这里即使通过这三个函数转变得到新的字符串,都只是重新申请内存保存的,原来字符串的值在内存中是没有改变的。

str = "  www.baidu.com \t\n\r"
1.删除字符串左右两个的空格和特殊字符
print(str.strip())			##www.baidu.com

2.去掉字符串左侧的空格和特殊字符
print(str.lstrip())			##www.baidu.com 	右边的空格依然存在

3.去掉字符串右侧的空格和特殊字符
print(str.rstrip())	  		##  www.baidu.com	左边边的空格依然存在

13. encode()和decode()函数:字符串编码转换

encode()将 string 类型转换成 bytes 类型;decode() 方法用于将 bytes 类型的二进制数据转换为 string 类型。默认编码格式为utf-8,解码时要选择和编码时一样的格式,否则会抛出异常。

str = "www.baidu.com"
1.默认采用 UTF-8 编码将字符串转换成 bytes 类型
bytes1 = str.encode()
print(bytes1)			## b'www.baidu.com'

2.默认采用 GBK 编码将字符串转换成 bytes 类型
bytes2 = str.encode('GBK')
print(bytes2)			## b'www.baidu.com'

3.将使用UTF-8 编码转换的 bytes 类型解码成string类型
str1 = bytes1.decode()
print(str1)				## www.baidu.com

4.将使用GBK 编码转换的 bytes 类型解码成string类型
str1 = bytes2.decode('GBK')
print(str1)				## www.baidu.com
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值