这期内容当中小编将会给大家带来有关Python中与那些字符串操作函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
#定义空字符串 >>> 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
特别提醒:字符串如果修改的话,字符串所在的内存地址也跟着变化,所以不可被修改,但是对于列表来说,可以修改是因为列表的内存是不变的,可以直接在上面修改
特别提醒:字符串其实和列表,元组一样,也是可以切片的
>>> 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'
>>> name="ahong luo" >>> name.capitalize() 'Ahong luo' >>>
sub:统计的字符,start:开始位,end:结束位,start和end默认为空时,则表示全部字符中去统计
>>> name="ahong luo"
#有开始和结束符
>>> name.count("o",1,5) 1 #从整个字符串中统计字符 >>> name.count("o") 2 >>>
如果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
如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最右边
>>> name="ahong luo" >>> len(name) 9 #小于等于字符串的长度 >>> name.ljust(8,'-') 'ahong luo' #大于字符串的长度 >>> name.ljust(50,'-') 'ahong luo-----------------------------------------'
特别提醒:ljust中的l表示left的意思,表示从右向左
如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最左边
>>> name="ahong luo" >>> len(name) 9 >>> name.rjust(8,'-') 'ahong luo' >>> name.rjust(50,'-') '-----------------------------------------ahong luo'
特别提醒:ljust中的l表示left的意思,表示从左向右
字符串的编码和解码,在这边不用说了,我专门写了一篇博客,详细地址:猛击这里
判断是否已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
全文查找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 >>>
从左向右查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1
>>> name="ahong luo" #找到 >>> name.rfind("a") 0 #未找到 >>> name.rfind("a",2) -1
①关键字拼接也是官方推荐 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)
数据格式,以字典形式传入
>>> name="name:{name},age:{age}" >>> name.format_map({"name":"luoahong",'age':23}) #输出结果 'name:luoahong,age:23'
是否是一个阿拉伯数字和字母,它包含因为英文字符+(1-9)数字,中间不能有特殊字符
>>> age='23' >>> age.isalnum() True #有特殊字符的 >>> age='ab23' >>> age='ab' >>> age.isalnum() True >>> age='ab' >>> age.isalpha() True >>>
是否是一个纯的英文字符,包含大写
>>> age = 'ab' >>> age.isalpha() True #夹着数字 >>> age = 'ab23' >>> age.isalpha() False #大写 >>> age = 'Ab' >>> age.isalpha() True
判断是否是一个整数
判断是否是一个空格
#不是空格 >>> age = ' age' >>> age.isspace() False #是空格 >>> age = ' ' >>> age.isspace() True
是否是一个标题(字符串中的每个单子首字母大写)
#每个单词的首字母是小写 >>> name="luoahong" >>> name.istitle() False >>> name="luo a hong" >>> name.istitle() False #每个单词的首字母大写 >>> name="Luo A Hong" >>> name.istitle() True >>> name="Luoahong" >>> name.istitle() True
是否是大写,注意字符串必须全部是大写才会返回True,否则返回False
#全部大写 >>> name="LUO" >>> name.isupper() True #小写 >>> name="Luo" >>> name.isupper() False >>>
序列用某个字符拼接成一个字符串,注意的是,序列的元素必须是str类型
>>> a = ['1','2','3'] >>> '+'.join(a) '1+2+3'
字符串中的大写字母转换为小写字母
>>> name="LuoAHong" >>> name.lower() 'luoahong' >>>
字符串中的小写字母转换为大写字母
>>> name="LuoAHong" >>> name.upper() 'LUOAHONG'
去掉左右两边的空格(space)和回车(\n)
>>> name= " \n luoahong \n" >>> name.strip() 'luoahong'
删掉左边到右的空格(space)和回车(\n)
>>> name= " \n luoahong \n" >>> name.lstrip() 'luoahong \n'
删掉右边到左边的空格(space)和回车(\n)
>>> name= " \n luoahong \n" >>> name.rstrip() ' \n luoahong'
至此,方法前有l(left)和r(right)的函数,都是对之前函数的一个扩展,带l的表示至始至终从右到左操作,记住左边才是最终目的地,而带r的至始至终都是从左到右,因为右边才是它的终极目标
分割函数,默认是以空格分割(space)生成一个列表,如果其他字符分割,输入其他字符参数
>>> name="ahong luo" #默认为空,按空格分割 >>> name.split() ['ahong', 'luo'] >>> name="ahong+luo" #以"+"字符分割 >>> name.split("+") ['ahong', 'luo'] #以'\n'分割 >>> name="ahong\nluo" >>> name.split("\n") ['ahong', 'luo']
以换行符分割,这个一般在windows上开发,移到Linux上执行,或者在Linux上开发,移到Windows上执行,因为换行在windows上是"\r\n",linux上是'\n'
>>> name="ahong\nluo" >>> name.splitlines() ['ahong', 'luo']
把大写换成小写,把小写换成大写
>>> name="Luo" >>> name.swapcase() 'lUO'
判断是否以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
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'
字符的长度是否大于等于(>=)with,如果比width小,则在字符串钱用0填充,如果>=width,则返回原字符串
>>> name="luoahong" >>> len(name) 8 #width大于字符串长度 >>> name.zfill(11) '000luoahong' #width小于等于字符串长度 >>> name.zfill(8) 'luoahong' >>>
Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。
上述就是小编为大家分享的Python中与那些字符串操作函数了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。