python字符串操作

1、拼接字符串
使用“+”运算符壳完成对多个字符串的拼接

注意:字符串不允许直接与其他类型的数据拼接,例如字符串和数值拼接会报异常

解决方法:将数值使用str()方法强制转换成字符串
2、计算字符串的长度
由于不同的字符串所占字节数不同,所以要计算字符串的长度,需要了解各字符串所占的字节数
Python中,数字、英文、小数点、下划线和空格占一个字节;一个汉字可能占2~4个字节,占几个字节取决于采用的编码。汉字在GBK/GB2312编码中占2个字节,在UTF-8/unicode编码中一般占用3个字节(或4个字节)。
在python中,使用len()函数计算字符串的长度
len(string)
注意:string是指定长度的字符串
如果采用UTF-8编码
str1 = "人生苦短,我用python"
length = len(str1.encode())
print(length)
计算的长度为28
如果想获取到GBK编码的长度
str2 = "人生苦短,我用python"
length = len(str2.encode("gbk"))
print(length)
计算的长度为21
3、截取字符串
字符串也属于序列,所以要截取字符串,可以采用切片方法实现。
通过切片方法截取字符串的语法格式:
string[start:end:step]
参数说明:
string:要截取的字符串
start:要截取的第一个字符串的索引(包括该字符),默认0
end:要截取的最后一个字符的索引(不包括该字符),默认字符串的长度
step:切片的步长,默认1,可以省略,省略时,最后一个“:”也可以省略
注意:在进行字符串截取时,如果指定的索引不存在,会抛出异常
解决方法:采用try...except语句捕获异常
4、分割、合并字符串
在python中,分割字符串是把字符串分割成列表,合并字符串是把列表合并为字符串。
使用split分割,语法格式:
str.split(sep,maxsplit)
参数说明:
str:要分割的字符串
sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符串(包括空格、换行、制表符等)
maxsplit:可选参数,用于指定分割的次数,如果不指定或者未-1,则分割次数没有限制,否则反馈结果列表的元素个数,个数最多为maxsplit+1
注意:在split方法中,如果不指定sep参数,那么也不能指定maxsplit参数

合并字符串可以使用字符串对象的join()方法实现,语法:
strnew = string.join(iterable)
参数说明:
strnew:合并后生成的新字符串。
string:字符串类型,用于指定合并时的分隔符
iterable:可迭代对象,该迭代对象中的所有元素(字符串表示)将被合并为一个新的字符串,string作为边界点分割出来。
5、检索字符串

  • 5.1、count()

用于检索指定字符串在另一个字符串中出现的次数。如果检索的字符串不存在,则返回,否则返回出现的次数。
语法格式:
str.count(sub[,start[,end]])
参数说明:
str:表示原字符串
sub:要检索的字符串
start:可选参数,检索范围的起始位置索引,不指定则从开始检索
end:可选参数,检索范围的结束位置索引,不指定则到结尾

  • 5.2、find()

用于检索是否包含指定的子字符串,如果检索的字符串不存在,则返回-1,否则返回首次出现的位置索引。语法格式:
str.find(sub[,start[,end]])
参数说明:
str:原字符串
sub:要检索的子字符串
start:可选参数,检索范围的起始位置索引,不指定则从开始检索。
end:可选参数,检索范围的结束索引,不指定则一直检索到结尾
说明:
如果只是想要判断指定的字符串是否存在,可以使用in关键字。如果存在,则返回True,否则返回False,也可以使用find()方法的返回值大于-1来确定指定的字符串是否存在
python的字符串对象还提供了rfind()方法,作用和find()方法类似,只是从字符串右边开始查找

  • 5.3、index()

index()方法与find()方法类似,也是用于检索是否包含指定的子字符串。只不过如果使用index()方法,当指定的字符串不存在时,会抛出异常。语法格式:
str.index(sub[,start[,end]])
参数说明:
str:表示原字符串
sub:要检索的字符串
start:可选参数,表示要检索范围的起始位置索引,不指定则从头开始检索
end:可选参数,表示要检索范围的结束位置索引,不指定则一直检索到结尾
如果输入的子字符串在原字符串中不存在,将会抛出异常
说明:
python中还提供了rindex()方法,作用与index()方法类似,只是从右边开始查找

  • 5.4、startswith()

用于检索字符串是否以指定子字符串开头。如果是,则返回True,否则返回false,语法格式:
str.startswith(prefix[,start[,end]])
参数说明:
str:原字符串
prefix:要检索的子字符串
start:检索范围的起始位置索引,不指定则从开始检索
end:检索范围的结束位置索引,不指定则一直检索到结尾

  • 5.5、endswith()

用于检索字符串是否以指定子字符串结尾。如果是则返回True,否则返回False。语法格式:
str.endswith(suffix[,start[,end]])
参数说明:
str:原字符串
suffix:要检索的子字符串
start:检索范围的起始位置索引,不指定则从开始检索
end:检索范围的结束位置索引,不指定则一直检索到结尾
6、字母的大小写转换
python中,字符串对象提供了lower()方法和upper()方法进行字母的大小写转换,即可用于将大写字母转换为小写字母或者将小写字母转换为大写字母

  • 6.1、lower()方法

用于将字符串的大写字母转换为小写字母。如果字符串中没有需要被转换的字符,则原字符串返回;否则将返回一个新的字符串,所用的大写字母都将转成小写字母,语法格式:
str.lower()

  • 6.2、upper()方法

用于将字符串中的小写字母转成大写字母。如果字符串中没有需要转换的字符,则原字符串返回,否则将返回一个新的字符串,所有的小写字母都将转成大写字母,语法格式:
str.upper()
7、去除字符串中的空格和特殊字符

  • 7.1、strip() 方法用于去掉字符串左、右两侧的空格和特殊字符,语法格式:

str.strip([chars])
参数说明:
str:要去除空格的字符串
chars:可选参数,用于指定要去除的字符,可以指定多个,默认空格、制表符、换行符、回车符等空字符

  • 7.2、lstrip()方法用于去掉左侧的空格和特殊字符,语法格式:

str.lstrip([chars])
参数说明:
str:要去除空格的字符串
chars:可选参数,用于指定要去除的字符,可以指定多个,默认为空格、制表符、换行符、回车符等空字符

  • 7.3、rstrip()方法用于去掉右侧的空格和特殊字符,语法格式:

str.rstrip(chars[])
参数说明:
str:要去除空格的字符串
chars:可选参数,用于指定要去除的字符,可以指定多个,默认为空格、制表符、换行符、回车符等空字符
8、格式化字符串
格式化字符串是指先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为占位符),而这些符号还不会显示出来。

  • 8.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 浮点数 %% 字符%
exp:要转换的项。如果要指定的项有多个,则需要通过元组的形式进行指定,但不能使用列表
说明:由于使用%操作符是早期python中提供的方法,自从python2.6版本开始,字符串对象提供了format()方法对字符串进行格式化

  • 8.2、使用字符串对象的format()方法

字符串对象提供了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位)
说明:
当一个模板中,出现多个占位符时,指定索引位置的规范需统一,即全部采用手动指定,或者全部采用自动。

import math
print('1245+3456的结果是(以货币形式显示):¥{:,.2f}元'.format(1245+3456))
print('∏取5位小数:{:.5f}'.format(math.pi))
print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1))
print('{0:d}的16进制结果是:{0:#x}'.format(200))
print('天才是由{:.0%}的灵感,加上{:.0%}的汗水。'.format(0.01,0.99))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值