Python字符串常用功能汇总

Python基础之字符串操作常用函数集合

1、字符串的定义

#定义空字符串
> name=''
#定义非空字符串 > name="luoahong"
#通过下标访问 > name[1] 'u'
#不能修改字符串的值,否则会报错 > name[2] = "3" Traceback (most recent call last): File "<stdin>", line 1, in <module> 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-----------------------------------------'

"<h3></h3>">

> name="ahong luo"
> len(name) 9 > name.rjust(8,'-') 'ahong luo' > name.rjust(50,'-') '-----------------------------------------ahong luo' 

"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

"http://www.cnblogs.com/zhangqigao/articles/6387512.html" rel="external nofollow" target="_blank">

17、isspace()

判断是否是一个空格

#不是空格
> age = ' age'
> age.isspace()
False
#是空格
> age = ' '
> age.isspace()
True

"<h3></h3>">
#每个单词的首字母是小写
> 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 >

"htmlcode">
> a = ['1','2','3']
> '+'.join(a)
'1+2+3'

"<h3></h3>">
> name="LuoAHong"
> name.lower()
'luoahong'
>

"<h3></h3>">
> name="LuoAHong"
> name.upper()
'LUOAHONG'

"<h3></h3>">
> name= " \n luoahong \n"
> name.strip()
'luoahong'

"<h3></h3>">
> name= " \n luoahong \n"
> name.lstrip()
'luoahong \n'

"<h3></h3>">
> 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']

"\r\n",linux上是'\n'

> name="ahong\nluo"
> name.splitlines()
['ahong', 'luo']

"<h3></h3>">
> 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[,"pun">])

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' >
标签:
Python字符串操作,Python字符串常用函数,Python字符串函数,Python字符串切片,Python字符串首字母大写,Python字符串统计

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com

评论“Python基础之字符串操作常用函数集合”

暂无“Python基础之字符串操作常用函数集合”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?