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中的rjust()方法使用详解
May 19 Python
Python下载懒人图库JavaScript特效
May 28 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python工厂函数用法实例分析
May 14 Python
python实现滑雪游戏
Feb 22 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
python模块如何查看
Jun 16 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
Python descriptor(描述符)的实现
Nov 15 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
手把手教你使用TensorFlow2实现RNN
Jul 15 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
海贼王:最美的悬赏令!
2020/03/02 日漫
也谈php网站在线人数统计
2008/04/09 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP7 新增功能
2021/03/09 PHP
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
Django forms组件的使用教程
2018/10/08 Python
python实现石头剪刀布程序
2021/01/20 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
python中如何进行连乘计算
2020/05/28 Python
python字典的值可以修改吗
2020/06/29 Python
python中字符串的编码与解码详析
2020/12/03 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
Linux常见面试题
2016/10/04 面试题
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
初中生期末考试的自我评价
2013/12/17 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
公司老总年会致辞
2015/07/30 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang