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


Posted in Python onFebruary 09, 2020

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-----------------------------------------'

 特别提醒: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'
>>>
Python 相关文章推荐
王纯业的Python学习笔记 下载
Feb 10 Python
在python中的socket模块使用代理实例
May 29 Python
Python数据类型详解(一)字符串
May 08 Python
Python常见异常分类与处理方法
Jun 04 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
Python SSL证书验证问题解决方案
Jan 13 Python
详解python中的闭包
Sep 07 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 Python
如何利用python和DOS获取wifi密码
Mar 31 Python
python百行代码实现汉服圈图片爬取
Nov 23 Python
python连接PostgreSQL过程解析
Feb 09 #Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 #Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 #Python
python 爬取疫情数据的源码
Feb 09 #Python
python代码如何实现余弦相似性计算
Feb 09 #Python
python字符串替换re.sub()实例解析
Feb 09 #Python
Python随机数函数代码实例解析
Feb 09 #Python
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
新闻分类录入、显示系统
2006/10/09 PHP
通俗易懂的php防注入代码
2010/04/07 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
js 三级关联菜单效果实例
2013/08/13 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
实例解析Array和String方法
2016/12/14 Javascript
javascript history对象详解
2017/02/09 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
JavaScript实现单例模式实例分享
2017/12/22 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Django 多环境配置详解
2019/05/14 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
绿色校园广播稿
2014/10/13 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
小程序实现文字循环滚动动画
2021/06/14 Javascript
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
golang生成vcf通讯录格式文件详情
2022/03/25 Golang