python字符串处理函数汇总_Python基础之字符串操作常用函数集合

Python字符串常用功能汇总

202029123110252.png

1、字符串的定义

#定义空字符串

>>> name=''

#定义非空字符串

>>> name="luoahong"

#通过下标访问

>>> name[1]

'u'

#不能修改字符串的值,否则会报错

>>> name[2] = "3"

Traceback (most recent call last):

File "", line 1, in

TypeError: 'str' object does not support item assignment

特别提醒:字符串如果修改的话,字符串所在的内存地址也跟着变化,所以不可被修改,但是对于列表来说,可以修改是因为列表的内存是不变的,可以直接在上面修改

2、切片

特别提醒:字符串其实和列表,元组一样,也是可以切片的

>>> name="ahong luo"

>>> name[1:4]  #取1到4之间的字符,包括1,不包括4

'hon'

>>> name[1:-1]  #取1到-1之间的字符,包括1,不包括-1

'hong lu'

>>> name[0:3]

'aho'

>>> name[:3]   #从头开始取,0可以省略,效果等同于name[0:3]

'aho'

>>> name[3:]   #想取到最后一个值,必须不能写-1,只能这么写

'ng luo'

>>> name[0::2]  #后面的2表示:每隔一个字符就取一个

'aoglo'

>>> name[::2]   #从头开始0可以省略,效果跟上一句一样

'aoglo'

3、首字母大写(capitalize())

>>> name="ahong luo"

>>> name.capitalize()

'Ahong luo'

>>>

4、统计(count(sub,start=None,end=None))

sub:统计的字符,start:开始位,end:结束位,start和end默认为空时,则表示全部字符中去统计

>>> name="ahong luo"

#有开始和结束符

>>> name.count("o",1,5)

1

#从整个字符串中统计字符

>>> name.count("o")

2

>>>

5、center(width,fillchar)

如果width(字符宽度)小于等于(<=)字符串的长度,则返回原字符串,如果大于(>)字符串的,则用fillchar(填满字符)填满,处理结果等于width,字符串位于fillchar的中间

>>> name="ahong luo"

>>> len(name)

9

#10小于等于字符串宽度

>>> name.center(12,'-')

'-ahong luo--'

#50大于字符串长度,并且字符串位于填充字符的中间

>>> name.center(50,'-')

'--------------------ahong luo---------------------'

>>> len(name.center(50,'-'))

50

6、ljust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最右边

>>> name="ahong luo"

>>> len(name)

9

#小于等于字符串的长度

>>> name.ljust(8,'-')

'ahong luo'

#大于字符串的长度

>>> name.ljust(50,'-')

'ahong luo-----------------------------------------'

特别提醒:ljust中的l表示left的意思,表示从右向左

7.rjust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最左边

>>> name="ahong luo"

>>> len(name)

9

>>> name.rjust(8,'-')

'ahong luo'

>>> name.rjust(50,'-')

'-----------------------------------------ahong luo'

特别提醒:ljust中的l表示left的意思,表示从左向右

8、编码(encode)

字符串的编码和解码,在这边不用说了,我专门写了一篇博客,详细地址:猛击这里

9、endwith(suffix,start=None,end=None)

判断是否已suffix结尾,是返回True,否返回Fales

suffix:表示字符,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断>>> name="ahong luo"

>>> name.endswith('0',1,4) False

>>> name.endswith('o') True >>> name.endswith('o',1,4) False

10、find(sub,start=None,end=None)

全文查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

sub:字符或者字符串,start:开始位,end:结束位,start和end默认为空时,则在整个字符串中查找

>>> name="ahong luo"

#没找到,则返回-1

>>> name.find("lu",1,4)

-1

>>> name.find("a",2)

-1

>>> name.find("lu")

6

>>> name.find("lu",1,6)

-1

>>> name.find("lu",1,10)

6

>>>

11、rfind(sub,start=None,end=None)

从左向右查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

>>> name="ahong luo"

#找到

>>> name.rfind("a")

0

#未找到

>>> name.rfind("a",2)

-1

12、format()

①关键字拼接也是官方推荐

1

2

3

4

5

6

7

8

9

name = "alex"

age = 18

info = '''----info-----

name:{_name}

age:{_age}

'''.format(_name=name,_age=age)

print(info)

②占位符拼接

1

2

3

4

5

6

7

8

9

name = "alex"

age = 18

info = '''----info-----

name:{0}

age:{1}

'''.format(name,age)

print(info)

13、format_map()

数据格式,以字典形式传入

>>> name="name:{name},age:{age}"

>>> name.format_map({"name":"luoahong",'age':23})

#输出结果

'name:luoahong,age:23'

14、isalnum()

是否是一个阿拉伯数字和字母,它包含因为英文字符+(1-9)数字,中间不能有特殊字符

>>> age='23'

>>> age.isalnum()

True

#有特殊字符的

>>> age='ab23'

>>> age='ab'

>>> age.isalnum()

True

>>> age='ab'

>>> age.isalpha()

True

>>>

15、isalpha()

是否是一个纯的英文字符,包含大写

>>> age = 'ab'

>>> age.isalpha()

True

#夹着数字

>>> age = 'ab23'

>>> age.isalpha()

False

#大写

>>> age = 'Ab'

>>> age.isalpha()

True

16、isdigit()

判断是否是一个整数

17、isspace()

判断是否是一个空格

#不是空格

>>> age = ' age'

>>> age.isspace()

False

#是空格

>>> age = ' '

>>> age.isspace()

True

18、istitle()

是否是一个标题(字符串中的每个单子首字母大写)

#每个单词的首字母是小写

>>> name="luoahong"

>>> name.istitle()

False

>>> name="luo a hong"

>>> name.istitle()

False

#每个单词的首字母大写

>>> name="Luo A Hong"

>>> name.istitle()

True

>>> name="Luoahong"

>>> name.istitle()

True

19、isupper()

是否是大写,注意字符串必须全部是大写才会返回True,否则返回False

#全部大写

>>> name="LUO"

>>> name.isupper()

True

#小写

>>> name="Luo"

>>> name.isupper()

False

>>>

20、join()

序列用某个字符拼接成一个字符串,注意的是,序列的元素必须是str类型

>>> a = ['1','2','3']

>>> '+'.join(a)

'1+2+3'

21、lower()

字符串中的大写字母转换为小写字母

>>> name="LuoAHong"

>>> name.lower()

'luoahong'

>>>

22、upper()

字符串中的小写字母转换为大写字母

>>> name="LuoAHong"

>>> name.upper()

'LUOAHONG'

23、strip()

去掉左右两边的空格(space)和回车(\n)

>>> name= " \n luoahong \n"

>>> name.strip()

'luoahong'

24、lstrip()

删掉左边到右的空格(space)和回车(\n)

>>> name= " \n luoahong \n"

>>> name.lstrip()

'luoahong \n'

25、rstrip()

删掉右边到左边的空格(space)和回车(\n)

>>> name= " \n luoahong \n"

>>> name.rstrip()

' \n luoahong'

至此,方法前有l(left)和r(right)的函数,都是对之前函数的一个扩展,带l的表示至始至终从右到左操作,记住左边才是最终目的地,而带r的至始至终都是从左到右,因为右边才是它的终极目标

26、split()

分割函数,默认是以空格分割(space)生成一个列表,如果其他字符分割,输入其他字符参数

>>> name="ahong luo"

#默认为空,按空格分割

>>> name.split()

['ahong', 'luo']

>>> name="ahong+luo"

#以"+"字符分割

>>> name.split("+")

['ahong', 'luo']

#以'\n'分割

>>> name="ahong\nluo"

>>> name.split("\n")

['ahong', 'luo']

27、splitlines()

以换行符分割,这个一般在windows上开发,移到Linux上执行,或者在Linux上开发,移到Windows上执行,因为换行在windows上是"\r\n",linux上是'\n'

>>> name="ahong\nluo"

>>> name.splitlines()

['ahong', 'luo']

28、swapcase()

把大写换成小写,把小写换成大写

>>> name="Luo"

>>> name.swapcase()

'lUO'

29、startswith(prefix, start=None,end=None)

判断是否以prefix开始,是返回True,否返回Fales

prefix:表示字符或者字符或者字符串,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断

>>> name="ahong luo"

>>> name.startswith("luo")  #开头找到"luo"字符串

False

>>> name.startswith("h",3,5)  #在索引3到5之间没有找到以字符'h'开头

False

30、replace(old,new[,max])

old:将被替换的子字符串; new:新字符串,用于替换old子字符串;max:可选字符串, 替换不超过 max 次

>>> name="wo shi luo a hong"

>>> name.replace("shi","bushi")

'wo bushi luo a hong'

#原字符串没有改变

>>> name.replace("shi","bushi",0)

'wo shi luo a hong'

>>> name.replace("shi","bushi",1)

'wo bushi luo a hong'

31、zfill(width)

字符的长度是否大于等于(>=)with,如果比width小,则在字符串钱用0填充,如果>=width,则返回原字符串

>>> name="luoahong"

>>> len(name)

8

#width大于字符串长度

>>> name.zfill(11)

'000luoahong'

#width小于等于字符串长度

>>> name.zfill(8)

'luoahong'

>>>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值