大家好,欢迎来到IT知识分享网。
拼接字符串
可以用“+”运算符连接多个字符串并产生一个字符串对象,但字符串不允许直接与其他类型的数据连接。
str1 = "hello" str2 = "world" num = 123 print(str1+" "+str2) #输出:hello world print(str1+str2+num) #报错
计算字符串的长度
在python中,数字、英文、小数点、下划线和空格占1个字节;
一个汉字可能占2~4个字节,占几个字节取决于采用的编码,GBK/GB2312编码中占2个字节,UTF-8/unicode编码中一般占3个字节(或4个字节)。
len(string)
- len():计算字符串的长度
- string:用于指定要进行长度统计的字符串
str1 = '您好 world!' length1 = len(str1.encode()) #计算UTF-8编码的字符串的长度 print("utf-8:",length1) length2 = len(str1.encode('GBK')) #计算gbk编码的字符串的长度 print("gbk:",length2)
输出:
utf-8: 13
gbk: 11
截取字符串
可以采用切片方法实现
string[start : end : step]
- string:表示要截取的字符串
- start:表示要截取的第一个字符的索引(包括该字符)
- end:表示要截取的最后一个字符的索引(不包括该字符)
- step:切片的步长,如果省略,则默认为1
str1 = '您好 world!' str1_1 = str1[1] str1_2 = str1[3:] str1_3 = str1[:7] str1_4 = str1[1:7:2] print('原字符串:',str1) print(str1_1+"\n"+str1_2+"\n"+str1_3+"\n"+str1_4)
输出:
原字符串: 您好 world!
好
world!
您好 worl
好wr
分割字符串
字符串对象的split()方法可以实现字符串的分割
str.split(sep , maxsplit)
- str:表示要进行分割的字符串
- sep:用于指定分隔符,可以包含多个字符,默认为None
- maxsplit:可选参数,用于指定分割的次数
- 返回值:分割后的字符串列表
- 注意:split方法中,如果不指定sep参数,那么也不能指定maxsplit参数
str1 = ' 您好! world!' print('原字符串:',str1) list1 = str1.split() #采用默认分隔符进行分割 list2 = str1.split(' ') #采用空格分割 list3 = str1.split('!',1) #采用“!”进行分割,并且只分割前1个 list4 = str1.split('o') #采用“o“分割 print(str(list1)+"\n"+str(list2)+"\n"+str(list3)+"\n"+str(list4))
输出:
原字符串: 您好! world!
[‘您好!’, ‘world!’]
[”, ‘您好!’, ‘world!’]
[‘ 您好’, ‘ world!’]
[‘ 您好! w’, ‘rld!’]
合并字符串
可以使用字符串对象的join()方法实现
strnew = string.join(iterable)
- strnew:合并后生成的新字符串
- string:字符串类型,用于指定合并时的分隔符
- iterable:可迭代对象,该迭代对象中的所有元素将被合并为一个新的字符串
list = ['a','b','c','d'] str_list = ' *'.join(list) list_1 = "*"+str_list #由于使用join()方法时,第一个元素前不加分隔符,所以需要在前面加上*符号 print(list_1)
输出:
*a *b *c *d
检索字符串
1、count()方法
用于检索指定字符串在另一个字符串中出现的次数
str.count(sub[, start[, end]])
- str:原字符串
- sub:要检索的子字符串
- start:可选参数,检索范围的起始位置的索引
- end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.count('!')) print(str1.count(' ',0,3))
输出:
2
1
2、find()方法
用于检索是否包含指定的子字符串,如果检索的字符串不存在,则返回-1,否则返回首次出现该子字符串时的索引
str.find(sub[, start[, end]])
- str:原字符串
- sub:要检索的子字符串
- start:可选参数,检索范围的起始位置的索引
- end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.find('!')) print(str1.find('w',0,3))
输出:
3
-1
3、index()方法
与find()类似,用于检索是否包含指定的子字符串,但当指定的字符串不存在时会抛出异常
str.index(sub[, start[, end]])
- str:原字符串
- sub:要检索的子字符串
- start:可选参数,检索范围的起始位置的索引
- end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.index('!')) print(str1.index('w',0,3)) #抛出异常
输出:
3
ValueError: substring not found
4、startswith()方法
用于检索字符串是否以指定子字符串开头。如果时则返回True,否则返回False
str.startswith(prefix[, start[, end]])
- str:原字符串
- prefix:要检索的子字符串
- start:可选参数,检索范围的起始位置的索引
- end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.startswith(' ')) print(str1.startswith('w',4,8))
输出:
True
False
5、endswith()方法:
用于检索字符串是否以指定子字符串结尾。如果时则返回True,否则返回False
str.endswith(suffix[, start[, end]])
- str:原字符串
- suffix:要检索的子字符串
- start:可选参数,检索范围的起始位置的索引
- end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.endswith('!')) print(str1.endswith('好',0,3))
输出:
True
True
字母的大小写转换
1、lower()方法:大转小
用于将字符串中的大写字母转换为小写字母
str.lower()
- str:要进行转换的字符串
str1 = "hello WORLD" print(str1.lower())
输出:
hello world
2、upper()方法:小转大
用于将字符串中的小写字母转换为大写字母
str.upper()
- str:要进行转换的字符串
str1 = "hello WORLD" print(str1.upper())
输出:
HELLO WORLD
去除字符串中的空格和特殊字符
1、strip()方法:左右两侧
用于去掉字符字符串左、右两侧的空格和特殊字符
str.strip([chars])
- str:为要去除空格的字符串
- chars:可选参数,用于指定要去除的字符,可以指定多个
str1 = ' 您好! world!' print(str1.strip()) #去掉左右两侧的空格和特殊字符 print(str1.strip(' !')) #去掉左右两侧的空格和"!"
输出:
您好! world!
您好! world
2、lstrip()方法:左侧
用于去掉字符串左侧的空格和特殊字符串
str.lstrip([chars])
- str:为要去除空格的字符串
- chars:可选参数,用于指定要去除的字符,可以指定多个
str1 = '@您好! world!' print(str1.lstrip('@!')) #去掉左侧的@和!
输出
您好! world!
3、rstrip()方法:右侧
用于去掉字符串右侧的空格和特殊字符串
str.rstrip([chars])
- str:为要去除空格的字符串
- chars:可选参数,用于指定要去除的字符,可以指定多个
str1 = '@您好! world!' print(str1.rstrip('@!')) #去掉右侧的@和!
输出:
@您好! world
格式化字符串
1、%操作符
'%[-][+][0][m][.n]格式化字符'%exp
- -:可选参数,用于指定左对齐,正数前方无符号,负数前面加负号
- +:可选参数,用于指定右对齐,正数前方加正号,负数前面加负号
- 0:可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般和m参数一起使用)
- m:可选参数,表示占有宽度
- .n:可选参数,表示小数点后保留的位数
格式化字符 |
说明 |
格式化字符 |
说明 |
%s |
字符串(采用str()显示) |
%r |
字符串(采用repr()显示) |
%c |
单个字符 |
%o |
八进制整数 |
%d或者%i |
十进制整数 |
%e |
指数(基底写为e) |
%x |
十六进制整数 |
%E |
指数(基底写为E) |
%f或者%F |
浮点数 |
%% |
字符% |
s = "序列:%03d 字母:%s 是的是的" s1 = (1,'a') s2 = (2,'b') print(s%s1) print(s%s2)
输出:
序列:002 字母:b 是的是的
2、format()方法
str.format(args)
- str:指定字符串的显示样式(即模板)
- args:指定要转换的项,如果多项,则用逗号进行分割
{[index][:[[fill]align][sign][#][width][.precision][type]]}
- index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省略,则根据值的先后顺序自动分配。
- fill:可选参数,用于指定空白处填充的字符
- align:可选参数,用于指定对齐方式,需要配合width一起使用(值为“<”时表示内容左对齐;值为“>”时表示内容右对齐;值为“=”时表示内容右对齐,只对数字类型有效,即将数字放在填充字符的最右侧,值为“^”时表示内容居中)
- sign:可选参数,用于指定有无符号数(值为“+”表示正数加正号,负号加负号;值为“-”表示正数不变,负数加负号;值为空格表示正数加空格,负数加负号)
- #:可选参数,对于二进制、八进制和十六进制数。如果加上#,则表示会显示0b/0o/0x前缀,否则不显示前缀
- width:可选参数,用于指定所占宽度
- .precision:可选参数,用于指定保留的小数位数
- type:可选参数,用于指定类型
格式化字符 |
说明 |
格式化字符 |
说明 |
s |
对字符串类型格式化 |
b |
将十进制整数自动转化为二进制表示再格式化 |
d |
十进制整数 |
o |
将十进制整数自动转化为八进制表示再格式化 |
c |
将十进制整数自动转化成对应的Unicode字符 |
x或者X |
将十进制整数自动转化为十六进制表示再格式化 |
e或者E |
转换为科学计数法表示再格式化 |
f或者F |
转换为浮点数(默认小数点后保留6位)再格式化 |
g或者G |
自动在e和f或者E和F中切换 |
% |
显示百分比(默认小数点后保留6位) |
s = "序列:{:0>3d} 字母:{:s} 是的是的" s1 = s.format(1,'a') s2 = s.format(2,'b') print(s1) print(s2)
输出:
序列:002 字母:b 是的是的
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/92753.html