python字符串以 0_python-字符串的方法

一、针对于字符串的操作

1.字符串大小转换的操作:

lower() #把大写字母全部转换成小写

upper()#把小写字母全部转换成大写

swapcase()#大写转成小写,小写转成大写

capitalize()#把第一个字母转成大写字母

title()#把每个单词首字母大写,以空格分割

casefold()#把所有字母转成小写,和lower()一样

2.计数,查找,替换

#计重复的字符串

count(str) #统计重复str的次数,区分大小写,如果没有返回0

#查找字符串下标

find(str) #查找str的下标,如果没有返回-1

rfind(str)#从右边开始查找str的下标,如果没有返回-1

index(str)#跟find一样,返回str的下标,一点不同index找不到会抛出错误ValueError

rindex(str)#从右边开始

#替换字符串

replace(old,new,count) #把old替换成new,count为替换次数(有多个重复内容的字符串用到),count也可缺省(全部替换)

expandtabs(tabsize=8) #把字符串中的\t替换成空格,默认为tabsize=8(8个空格),可以指定

3.字符串空格的操作

#去除空格或其他字符的操作

strip(str) #去除左右str(左右不一样多,会循环删除),如果不填str默认为空格,换行符和制表符,注:strip指定的字符串,是以每个字符循环去除的

lstrip(str)#去除左边str

rstrip(str)#去除右边str

#加空格

center(width) #长度为width宽度(如果宽度不够则无空格填充),字符串居中显示

ljust(width)#长度为width宽度,字符串左对齐方式显示

rjust(width)#长度为width宽度,字符串右对齐方式显示

4.字符串分割成列表,列表元素组合成字符串

#分割为列表

split(sep=str,maxsplit=-1) #以str分割成一个列表,maxsplit指定分割次数(-1表示有多少str就分割几次),

注:不保留str分割符,例: '1 2 3'.split(' ') 结果:['1','2','3']

splitlines(False)#以\n(换行符)分割为一个列表,False表示不包含\n的分割,True表示包含\n的分割(保留在前一个列表前一个元素)

注:splitlines和split基本相似,唯一不同是splitlines可以保留\n而split不保留#分割为元祖

partition(str) #以str分割为一个元祖,中间的元素为分割符,从左至右,字符串有多个相同的字符以第一个分割

注:保留str分割符,例:'123'.partition('2') 结果:('1','2','3')

rpartition(str)#往右边开始

#把列表元素组合成字符串

'+'.join(list1) #以字符+组合list1列表每个元素,前提是list1中必须全是字符串,否则抛TypeError

例:>>> '+'.join(['1','2','3'])'1+2+3'有整型数据时候:>>> '+'.join(['1','2','3',4])

Traceback (most recent call last):

File"", line 1, in

'+'.join(['1','2','3',4])

TypeError: sequence item3: expected str instance, int found

5.编码

encode(编码格式) #把该字符串以该编码格式,转换成该编码的bytes,编码格式:utf8,gbk

6.以0填充字符串

zfill(number) #以0填充左边,number为字符串的长度,如果number小于字符串长度不会有0填充

例:>>> '1001'.zfill(8)'00001001'

>>> '1001'.zfill(3)'1001'

7.字符转换

总结:replace也可以完成该转换内容,用处感觉不大

translate(table) #转换字符串某特定内容,table放的是映射表,str.maketrans('1','2')制造映射表

例:>>> 'aaabbbccc'.translate(str.maketrans('b','*'))'aaa***ccc'

>>> a = str.maketrans('b','*')>>> a #是ASCII码

{98: 42}>>> 'aaabbbccc'.translate(a)'aaa***ccc'

8.格式化

format()   #像print一样,输出内容的

例:

顺序的:#括号里的顺序是什么样,打印就是什么样

>>> '姓名:{} 年龄:{}'.format('zezhou',18)'姓名:zezhou 年龄:18'以下标:#字符串里可以指定括号里元素的下标,如果下标超出会抛出IndexError

>>> '姓名:{0} 年龄:{1}'.format('zezhou',18)'姓名:zezhou 年龄:18'

>>> '姓名:{1} 年龄:{0}'.format('zezhou',18)'姓名:18 年龄:zezhou'以变量名:#更灵活,但是写的内容也就多了

>>> '姓名:{name} 年龄:{age}'.format(age=18,name='zezhou')'姓名:zezhou 年龄:18'

#还有格式化参数,待写-------------

二、针对于字符串的判断

注:以下都是用于判断,只会返回True或False

1.判断是否以该字符串开头结尾

startswith(str,start,end) #判断是否是以str开头,start为开始位置,end为结束位置(start和end空缺表示整个字符串)

例:>>>a'123456789'

>>> a.startswith('123')

True>>> a.startswith('234')

False>>> a.startswith('789',len(a)-3,len(a)) #也可使其判断结尾内容

True

endswith(str,start,end)#判断是否以str字符串结束

2.判断字符串是否是全数字,全空格和全字符(不包含数字)

判断数字:

isdigit() #判断字符串是否为全数字,全数字返回True

isdecimal()#判断是否只包含十进制数字

isnumeric()#判断字符串是否只包含数字和汉字数字

例:>>> b'123'.isdigit()

True#当为bytes类型数字,isdecimal就不行了

>>> b'123'.isdecimal()

Traceback (most recent call last):

File"", line 1, in b'123'.isdecimal()

AttributeError:'bytes' object has no attribute 'isdecimal'

#unicode类型,isdecimal还可以用

>>> u'1231232131'.isdecimal()

True#isnumeric示例

>>> '123四六'.isnumeric()

True>>> '123四六'.isdigit()

False>>> '123四六'.isdecimal()

False

总结:只有isdigit()可以判断bytes类型,unicode类型只有isdigit()不可以判断,数字加汉字数字只有isnumeric()可以判断

判断空格:

isspace() #判断字符串是否只有空格

例:>>> '1'.isspace()

False>>> ' '.isspace() #1个或多个空格,返回True

True>>> ''.isspace() #空字符串返回False

False

全字母:

isalpha() #全字母(大小写均可),返回True

其他得判断:   #感觉并不常用

isalnum() #全字母,全数字或字母和数字混合,都返回True

islower()#不包含大写字母,任意组合返回True

istitle()#每个单词首字母大写(可以任意字符),返回True

isupper()#每个字母都是大写(可以任意字符),返回True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值