python字符串常规操作⼤全
拼接字符串win7删除文件需要管理员权限
使⽤“+”运算符可完成对多个字符串的拼接,“+”运算符可以连接多个字符串并产⽣⼀个字符串对象。
字符串不允许直接与其他类型数据拼接。
如果要⽤来和其他类型拼接,先⽤str()函数转换成字符串类型。
str1 = 'Hello World'
str2 = '你好,世界'
print(str1+str2)
num = 2021
print(str1+str2+str(num))
计算字符串长度
由于不同的字符所占字节数不同,所以要计算字符串长度,需先了解字符所占字节数。在python中,数字、英⽂、⼩数点、下划线和空格占⼀个字节:⼀个汉字可能占2-4个字节,具体根据采⽤的编码决定。汉⼦在GBK/GB2312编码中占2个字
节,UTF-8/Unicode编码中⼀般占⽤3或4个字节。python默认为UTF-8编码,⼀般⼀个汉字占3个字节。
str1 = '⼈⽣苦短,我⽤python!'
print(len(str1))            #结果为14
默认情况下,len函数计算字符串长度,不区分英⽂、数字和汉字,所有字符按⼀个字符计算。
注:
在实际开发中,有时需要获取字符串实际所占字节数,这时可以使⽤encode()⽅法进⾏编码后获取。
str1 = '⼈⽣苦短,我⽤python!'
print(de()))      #UTF-8结果为28
print(de('gbk'))) #gbk结果为21
截取字符串
语法格式:string[start : end : step]
string:表⽰截取的字符串;
start:表⽰要截取的第⼀个索引(包括该字符),没⽤默认为0;
end:表⽰要截取的最好⼀个字符的索引(不包括该字符),没有默认字符串长度;
step:表⽰切⽚的步长,如果省略,默认为1;
进⾏截取时,如果指定索引不存在,则会抛出异常。
programer_1 = '你知道我的⽣⽇吗?'  # 程序员甲问程序员⼄的台词
print('程序员甲说:',programer_1)  # 输出程序员甲的台词
programer_2 = '输⼊你的⾝份证号码。' # 程序员⼄的台词
print('程序员⼄说:',programer_2)  # 输出程序员⼄的台词
韩国美女
idcard = '123456************'  # 定义保存⾝份证号码的字符串
print('程序员甲说:',idcard)  # 程序员⼄说出⾝份证号码
birthday = idcard[6:10] + '年' + idcard[10:12] + '⽉' + idcard[12:14] + '⽇'  # 截取⽣⽇
print('程序员⼄说:','你是' + birthday + '出⽣的,所以你的⽣⽇是' + birthday[5:]) # 输出程序员⼄的⽣⽇
分割字符串
语法格式:string.split(sep,maxsplit)
string:指定要分割的字符串;
sqlite
sep:指定分隔符,可以包含多个字符,默认为None,即空字符(包括空格、换⾏“\n”,制表符“\t”等);
maxsplit:可选参数,⽤于指定分割的次数,如果不指定或者为-1,则分割次数没⽤限制,否则返回结
果的元素个数,个数最多为maxsplit+1;
返回值是字符串列表;
str1 = '分割⼀个字符串 >>> www.baidu'
print('原字符串:',str1)
list1 = str1.split()
list2 = str1.split('>>>')
list3 = str1.split('.')
list4 = str1.split(' ',4)  #⽤空格进⾏分割,只分割前4个空格
print(str(list1)+'\n'+str(list2)+'\n'str(list3)+'\n'str(list4))
list5 = str1.split('>')
print(list5)
合并字符串
语法格式:strnew = string.join(iterable)
strnew:表⽰合并⽣成的新字符串;
string:字符串类型,⽤于指定合并时的分隔符;
socket939的939是什么意思iterable: 可迭代对象,⽐如列表,字符串,元组等。
list_friend = ['扎克伯格','俞敏洪','马云','马化腾']  # 好友列表
str_friend = ' @'.join(list_friend)  # ⽤空格+@符号进⾏连接
at = '@'+str_friend  # 由于使⽤join()⽅法合并时,第⼀个元素前不加分隔符,所以需要在前⾯加上@符号
print('您要@的好友:',at)
检索字符串
语法格式:unt(sub[,start[,end]])
⽤于检索指定字符串在另⼀个字符串中出现的次数
str:表⽰原字符串;
sub:表⽰要检索的⼦字符串;
start:可选参数,表⽰检索范围的起始位置的索引,如果不指定,则从头开始检索;
end:可选参数,表⽰检索范围的结束位置的索引,如果不指定,则⼀直检索打末尾。
find()⽅法
语法格式:str.find(sub[,start[,end]])
⽤于检索是否包含指定的⼦字符串。
str:表⽰原字符串;
sub:表⽰要检索的⼦字符串;
start:可选参数,表⽰检索范围的起始位置的索引,如果不指定,则从头开始检索;
end:可选参数,表⽰检索范围的结束位置的索引,如果不指定,则⼀直检索打末尾。
补充:
如果只需要判断存在可以不⽤find⽤in,如果没到则会返回-1,如果想从右边往左边,可以⽤rfind()⽅法。index()⽅法
语法格式:str.index(sub[,start[,end]])
index()⽅法和find()⽅法类似,⽤于检索是否包含指定的⼦字符串,区别是如果不存在会抛出
str:表⽰原字符串;
sub:表⽰要检索的⼦字符串;
start:可选参数,表⽰检索范围的起始位置的索引,如果不指定,则从头开始检索;
end:可选参数,表⽰检索范围的结束位置的索引,如果不指定,则⼀直检索打末尾。
startswith()⽅法
语法格式:str.startswith(sub[,start[,end]])
⽤于检索字符串是否是以指定⼦字符串开头,是返回True,不是返回False
str:表⽰原字符串;
sub:表⽰要检索的⼦字符串;
start:可选参数,表⽰检索范围的起始位置的索引,如果不指定,则从头开始检索;
end:可选参数,表⽰检索范围的结束位置的索引,如果不指定,则⼀直检索打末尾索打末尾。
endswith()⽅法
语法格式:dswith(sub[,start[,end]])
⽤于检索字符串是否是以指定⼦字符串结尾,是返回True,不是返回False
str:表⽰原字符串;
sub:表⽰要检索的⼦字符串;
start:可选参数,表⽰检索范围的起始位置的索引,如果不指定,则从头开始检索;
end:可选参数,表⽰检索范围的结束位置的索引,如果不指定,则⼀直检索打末尾。
去除字符串中空格和特殊字符
strip()⽅法
⽤于去除字符串两侧的空格和特殊字符。
lstrip()⽅法
⽤于去除字符串左侧的空格和特殊字符。
rstrip()⽅法
⽤于去除字符串右侧的空格和特殊字符。
特殊字符指:
制表符\t,回车符 \r 、换⾏符\n等。
格式化字符串格式⼀
格式化字符串是指先指定⼀个模板,在这个模板中预留⼏个空位,然后根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为站位符),⽽这些符号还不会显⽰出来。
使⽤“%”操作符
语法格式:'%[-][+][0][m][.n]格式化字符'%exp (注意别漏了单引号)
-:可选参数,⽤于指定左对齐,正数前⽅⽆符号,负数前⾯加负号;
+:可选参数,⽤于指定右对齐,正数前⽅加正号,负数前⾯加负号;
0:可选参数,表⽰右对齐,正数前⽅⽆符号,负数前⽅加负号,⽤0填充空⽩处(⼀般与m参数⼀起使⽤);
m:可选参数,表⽰占有宽度;
n:可选参数,表⽰⼩数点后保留的位数;
格式化字符:⽤于指定类型;
exp:要转换的项,如果要指定多个,需要通过元组,但不能⽤列表。
常⽤格式化字符串
实例
template = '编号:%09d\t公司名称: %s\t官⽹:www.%s'
context1 = (7,'百度','baidu')
context2 = (8,'新浪','sina')
print(template%context1)
print(template%context2)
格式化字符串格式⼆(常⽤)
现在⼤部分不怎么使⽤%⽅法,⽽是使⽤第⼆种format对象来实现格式化。
使⽤字符串对象的format()⽅法
语法格式:template.format(args)
template:⽤于指定字符串的显⽰样式(即模板)的字符串
args:⽤于指定要转换的项,如果有多项,则⽤逗号进⾏分割。
创建模板时,需要使⽤“{}”和“:”指定占位符
语法格式:{[index][:[[fill]align][sign][#][width][.precision][type]]}
index:可选参数,⽤于指定要设置格式对象在参数列表中的索引位置
fill:可选参数,指定空⽩处填充的字符
align:可选参数,⽤于指定对齐⽅式(“<”:左对齐,“>”:右对齐,“=”:右对齐,只对数字有效,“^”:表⽰居中和
width⼀起使⽤。)
sign:可选参数,⽤于指定有⽆符号数(正数,负数)
#:可选参数,对⼆进制数,⼋进制数,和⼗六进制数,加上#会显⽰0b/0o/0x前缀
width:可选参数,⽤于指定宽度
python怎么读取npz文件.precision可选参数,⽤于指定保留的⼩数位数
type:可选参数,⽤于指定类型
实例
import math        # 导⼊Python的数学模块
print('1251+3950的结果是(以货币形式显⽰):¥{:,.2f}元'.format(1251+3950)) # 以货币形式显⽰
print('{0:.1f}⽤科学计数法表⽰:{0:E}'.format(120000.1))    # ⽤科学计数法表⽰
print('π取5位⼩数:{:.5f}'.format(math.pi))    # 输出⼩数点后五位
print('{0:d}的16进制结果是:{0:#x}'.format(100))    # 输出⼗六进制数
print('天才是由 {:.0%} 的灵感,加上 {:.0%} 的汗⽔。'.format(0.01,0.99))  # 输出百分⽐,并且不带⼩数
字符串编码转换
最早的字符串编码时美国标准信息交换吗,即ASCII码。它仅有10个数字,26个⼤⼩写字母,26个⼩写英⽂字母及⼀些其他符号进⾏编码。ASCII码最多只能表⽰256个符号,每个字符占⼀个字节。GBK和GB2312是我国制定的中⽂编码规则,使⽤⼀个字节表⽰英⽂字母,2个字节表⽰中⽂。UTF-8是国际通⽤编码,对全世界所有国家需要⽤到的字符都进⾏了编码。UTF-8采⽤⼀个字节表⽰英⽂,3个字节表⽰中⽂。
在python中,有两种常⽤的字符串类型,分别问str和bytes。其中str表⽰Unicode字符即ASCII;bytes表⽰⼆进制数据。这两种类型的字符串不能拼接在⼀起使⽤。通常情况下,str在内存中以Unicode表⽰,⼀个字符对应若⼲个字节。但是如果在⽹络传输,或者保存到硬盘,就需要str转换成字节类型即bytes。
bytes类型的数据是带有b前缀的字符串(⽤单引号或双引号)
例如:b' d2 b0 和b'mr'都是bytes类型
str类型和bytes类型可以⽤encode()和decode()⽅法相互转换
使⽤encode()⽅法编码
encode()⽅法为str对象的⽅法,⽤于将字符串转换为⼆进制数据(即bytes),也称为“编码”。
语法格式:de([encoding= “utf-8”][,errors= “strict”]
python基础代码大全下载
str:表⽰要进⾏转换的字符串;
encoding = “utf-8”:可选参数,⽤于指定进⾏转码时采⽤的字符编码,默认为UTF-8,如果想使⽤简体中⽂,也可以设置为gb2312。当只有这⼀个参数时,也可以省略前⾯的“encoding=”,直接写编码;
errors = “strict”:可选参数,⽤于指定错误处理⽅式,其可选择值可以是strict(遇到⾮法字符就抛出异常)、ignore(忽略⾮法字符)、replace(⽤“?”替换⾮法字符)或xmlcharrefreplace(使⽤xml的字符引⽤)等,默认值为strict。
实例
verse = '野渡⽆⼈⾈⾃横'
byte = de('GBK')  # 采⽤GBK编码转换为⼆进制,不处理异常
print('原字符串:',verse)    # 输出原字符串(没有改变)
print('转换后:',byte)    # 输出转换后的⼆进制数据,如果⽤UTF-8来转换呢?
使⽤decode()⽅法解码
decode()⽅法为bytes对象的⽅法⽤于将⼆进制数据转换为字符串,即将使⽤encode()⽅法转换的结果在转换为字符串,也称为“解码”
语法格式:bytes.decode([encoding= “utf-8”][,errors= “strict”]
bytes:表⽰要进⾏转换的⼆进制数据,通常是encode()⽅法转换的结果
encoding = “utf-8”:可选参数,⽤于指定进⾏转码时采⽤的字符编码,默认为UTF-8,如果想使⽤简体中⽂,也可以设置为gb2312。当只有这⼀个参数时,也可以省略前⾯的“encoding=”,直接写编码。
errors = “strict”:可选参数,⽤于指定错误处理⽅式,其可选择值可以是strict(遇到⾮法字符就抛出异常)、ignore(忽略⾮法字符)、replace(⽤“?”替换⾮法字符)或xmlcharrefreplace(使⽤xml的字符引⽤)等,默认值为strict。
实例
verse = '野渡⽆⼈⾈⾃横'
byte = de('GBK')  # 采⽤GBK编码转换为⼆进制,不处理异常
print('原字符串:',verse)    # 输出原字符串(没有改变)
print('转换后:',byte)    # 输出转换后的⼆进制数据,如果⽤UTF-8来转换呢?
print('解码后:',byte.decode('GBK'))  # 对⼆进制数据进⾏解码
总结
到此这篇关于python字符串常规操作⼤全的⽂章就介绍到这了,更多相关python字符串操作内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。