您好,我是搞代码小搞,感谢您浏览本文,欢送一键三连哦。
本文将重点介绍Python字符串的各种罕用办法,字符串是理论开发中常常用到的,所有纯熟的把握它的各种用法显得尤为重要。
干货满满,倡议珍藏,欢送大家一键三连哦。 小伙伴们如有问题及须要,欢送踊跃留言哦~ ~ ~。
@[TOC]
前言
在后面介绍序列那一篇文章曾经对字符串做了一些简要的介绍,欢送小伙伴先看看[【Python从入门到精通】(五)Python内置的数据类型-序列和字符串,没有女友,不是保姆,只有拿来就能用的干货
](https://feige.www.gaodaima.com/a…,这篇文章将对字符串的各种罕用用法做一个具体的介绍。欢送大家意见三联哦。
字符串拼接
通过+
运算符
现有字符串搞代码小搞好,
,要求将字符串搞代码小搞牛逼
拼接到其前面,生成新的字符串搞代码小搞好,搞代码小搞牛逼
举个例子:
str6 = '搞代码小搞好,' # 应用+ 运算符号 print('+运算符拼接的后果=',(str6 + '搞代码小搞牛逼'))
运行后果是:
+运算符拼接的后果= 搞代码小搞好,搞代码小搞牛逼
字符串截取(字符串切片)
切片操作是拜访字符串的另一种形式,它能够拜访肯定范畴内的元素,通过切片操作,能够生成一个新的字符串。切片操作的语法格局是:
sname[start : end : step]
各个参数的含意别离是:
- sname: 示意字符串的名称
- start:示意切片的开始索引地位(包含该地位),此参数也能够不指定,不指定的状况下会默认为0,也就是从序列的结尾开始切片。
- end:示意切片的完结索引地位(不包含该地位),如果不指定,则默认为序列的长度。
- step: 示意步长,即在切片过程中,隔几个存储地位(包含以后地位)取一次元素,也就是说,如果step的值大于1,比方step为3时,则在切片取元素时,会隔2个地位去取下一个元素。
还是举个栗子阐明下吧:
<code class="py">str1='好好学习,天天向上' # 取出索引下标为7的值 print(str1[7]) # 从下标0开始取值,始终取到下标为7(不包含)的索引值 print(str1[0:7]) # 从下标1开始取值,始终取到下标为4(不包含)的索引值,因为step等于2,所以会隔1个元素取值 print(str1[1:4:2]) # 取出最初一个元素 print(str1[-1]) # 从下标-9开始取值,始终取到下标为-2(不包含)的索引值 print(str1[-9:-2])
运行的后果是:
向 好好学习,天天 好习 上 好好学习,天天
宰割字符串
Python提供了split()办法用于宰割字符串,split() 办法能够实现将一个字符串依照指定的分隔符切分成多个子串,这些子串会被保留到列表中(不蕴含分隔符),作为办法的返回值反馈回来。该办法的根本语法格局如下:
str.split(sep,maxsplit)
此办法中各局部参数的含意别离是:
- str: 示意要进行宰割的字符串
- sep: 用于指定分隔符,能够蕴含多个字符,此参数默认为None,示意所有空字符,包含空格,换行符”\n”、制表符”\t”等
- maxsplit: 可选参数,用于指定宰割的次数,最初列表中子串的个数最多为maxsplit+1,如果不指定或者指定为-1,则示意宰割次数没有限度。
在 split 办法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。
举例说明下:
str = 'https://feige.www.gaodaima.com/' print('不指定宰割次数', str.split('.')) print('指定宰割次数为2次',str.split('.',2))
运行后果是:
不指定宰割次数 ['https://feige', 'blog', 'csdn', 'net/'] 指定宰割次数为2次 ['https://feige', 'blog', 'csdn.net/']
合并字符串
合并字符串与split的作用刚刚相同,Python提供了join() 办法来将列表(或元组)中蕴含的多个字符串连接成一个字符串。其语法结构是:
newstr = str.join(iterable)
此办法各局部的参数含意是:
- newstr: 示意合并后生成的新字符串
- str: 用于指定合并时的分隔符
- iterable: 做合并操作的源字符串数据,容许以列表、元组等模式提供。
仍然是举例说明:
list = ['搞代码小搞', '好好学习', '十分棒'] print('通过.来拼接', '.'.join(list)) print('通过-来拼接', '-'.join(list))
运行后果是:
通过.来拼接 搞代码小搞.好好学习.十分棒 通过-来拼接 搞代码小搞-好好学习-十分棒
统计字符串呈现的次数
count()办法用于检索指定字符串在另一字符串中呈现的次数,如果检索的字符串不存在,则返回0,否则返回呈现的次数。其语法结构是:
str.count(sub[,start[,end]])
此办法各局部参数的含意是:
- str: 示意原字符串
- sub: 示意要检索的字符串.
- start: 指定检索的起始地位,也就是从什么地位开始检测,如果不指定,默认从头开始检索。
- end: 指定检索的终止地位,如果不指定,则示意始终检索到结尾
举个例子阐明:
str = 'https://feige.www.gaodaima.com/' print('统计.呈现的次数', str.count('.')) print('从1地位到倒数第五个地位统计.呈现的次数', str.count('.', 1, -5))
运行后果是:
统计.呈现的次数 3 从1地位到倒数第6个地位统计.呈现的次数 2
检测字符串是否蕴含某子串
Python提供find办法,用于检索字符串中是否蕴含指标字符串,如果蕴含,则返回第一次呈现该字符串的索引,反之,则返回-1。其语法结构是:
str.find(sub[,start[,end]])
此办法各参数的含意是:
- str: 示意原字符串
- sub: 示意要检索的指标字符串
- start: 示意开始检索的起始地位,如果不指定,则默认从头开始检索
- end: 示意完结检索的完结地位,如果不指定,则默认始终检索到结尾。
Python还提供了rfind()办法,与find()办法最大的不同在于,rfind()是从字符串左边开始检索。
仍然是举例说明:
str = '搞代码小搞' print('检索是否蕴含字符串"飞哥"', str.find('飞哥')) print("检索是否蕴含字符串'你好'", str.find('你好'))
运行后果是:
检索是否蕴含字符串"飞哥" 2 检索是否蕴含字符串'你好' -1
Python还提供了indext()办法检测字符串中是否蕴含某子串,办法的参数与find办法雷同,惟一不同之处在于当指定的字符串不存在时,index()办法会抛出异样。在此就不在赘述了。
字符串对齐办法
Python str提供了3种可用来进行文本对齐的办法,别离是ljust(),rjust()和center()办法
- ljust()用于向指定字符串的右侧填充指定字符,从而达到左对齐文本的目标,其语法结构是:
S.ljust(width[, fillchar])
此办法中各个参数的含意是:
- S: 示意要进行填充的字符串
- width: 示意包含S自身长度在内,字符串要占的总长度
- fillchar: 作为可选参数,用来指定填充字符串时所用的字符,默认状况应用空格。
- rjust() 办法是向字符串的左侧填充指定字符,从而达到右对齐文本的目标。
- center()办法用于让文本居中,而不是左对齐或右对齐
举个例子阐明下:
str1 = 'https://feige.www.gaodaima.com/' str2 = 'https://www.baidu.com/' print("通过-实现左对齐", str1.ljust(30, '-')) print("通过-实现左对齐", str2.ljust(30, '-')) print("通过-实现右对齐", str1.rjust(30, '-')) print("通过-实现右对齐", str2.rjust(30, '-')) print("通过-实现居中对齐", str1.center(30, '-')) print("通过-实现居中对齐", str2.center(30, '-'))
运行后果是:
通过-实现左对齐 https://feige.www.gaodaima.com/-- 通过-实现左对齐 https://www.baidu.com/-------- 通过-实现右对齐 --https://feige.www.gaodaima.com/ 通过-实现右对齐 --------https://www.baidu.com/ 通过-实现居中对齐 -https://feige.www.gaodaima.com/- 通过-实现居中对齐 ----https://www.baidu.com/----
检索字符串是否以指定字符串结尾(startswith())
startswith()办法用于检索字符串是否以指定字符串结尾,如果是返回True;反之返回False。其语法结构是:
str.startswith(sub[,start[,end]])
此办法各个参数的含意是:
- str: 示意原字符串
- sub: 要检索的子串‘
- start: 指定检索开始的起始地位索引,如果不指定,则默认从头开始检索
- end: 指定检索的完结地位索引,如果不指定,则默认始终检索到完结。
举个栗子阐明下:
str1 = 'https://feige.www.gaodaima.com/' print('是否是以https结尾', str1.startswith('https')) print('是否是以feige结尾', str1.startswith('feige', 0, 20))
运行后果是:
是否是以https结尾 True 是否是以feige结尾 False
检索字符串是否以指定字符串结尾(endswith())
endswith()办法用于检索字符串是否以指定字符串结尾,如果是则返回True,反之则返回False。其语法结构是:
str.endswith(sub[,start[,end]])
此办法各个参数的含意与startswith办法雷同,再此就不在赘述了。
字符串大小写转换(3种)函数及用法
Python中提供了3种办法用于字符串大小写转换
- title()办法用于将字符串中每个单词的首字母转成大写,其余字母全副转为小写。转换实现后,此办法会返回转换失去的字符串。如果字符串中没有须要被转换的字符,此办法会将字符串一成不变地返回。其语法结构是
str.title()
- lower()用于将字符串中的所有大写字母转换成小写字母,转换实现后,该办法会返回新失去的子串。如果字符串中本来就都是小写字母,则该办法会返回原字符串。 其语法结构是
str.lower()
- upper()用于将字符串中的所有小写字母转换成大写字母,如果转换胜利,则返回新字符串;反之,则返回原字符串。其语法结构是:
str.upper()
。
举例说明下吧:
str = 'feiGe怯懦飞' print('首字母大写', str.title()) print('全副小写', str.lower()) print('全副大写', str.upper())
运行后果是:
首字母大写 Feige怯懦飞 全副小写 feige怯懦飞 全副大写 FEIGE怯懦飞
去除字符串中空格(删除特殊字符)的3种办法
Python中提供了三种办法去除字符串中空格(删除特殊字符)的3种办法,这里的特殊字符,指的是指表符(\t)、回车符(\r),换行符(\n)等。
- strip(): 删除字符串前后(左右两侧)的空格或特殊字符
- lstrip():删除字符串后面(右边)的空格或特殊字符
- rstrip():删除字符串前面(左边)的空格或特殊字符
Python的str是不可变的,因而这三个办法只是返回字符串后面或者前面空白被删除之后的正本,并不会扭转字符串自身
举个例子阐明下:
str = '\n搞代码小搞怯懦飞 ' print('去除前后空格(非凡字符串)', str.strip()) print('去除右边空格(非凡字符串)', str.lstrip()) print('去除左边空格(非凡字符串)', str.rstrip())
运行后果是:
去除前后空格(非凡字符串) 搞代码小搞怯懦飞 去除右边空格(非凡字符串) 搞代码小搞怯懦飞 去除左边空格(非凡字符串) 搞代码小搞怯懦飞
encode()和decode()办法:字符串编码转换
最早的字符串编码是ASCll编码,它仅仅对10个数字,26个大小写英文字母以及一些特殊字符进行了编码,ASCII码最多只能示意256个字符,每个字符只须要占用1个字节。为了兼容各国的文字,相继呈现了GBK,GB2312,UTF-8编码等,UTF-8是国内通用的编码格局,它蕴含了全世界所有国家须要用到的字符,其规定英文字符占用1个字节,中文字符占用3个字节。
- encode() 办法为字符串类型(str)提供的办法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。其语法结构是:
str.encode([encoding="utf-8"][,errors="strict"])
- 将bytes类型的二进制数据转换成str类型。这个过程也称为”解码”,其语法结构是:
bytes.decode([encoding="utf-8"][,errors="strict"])
举个例子阐明下:
str = '搞代码小搞加油' bytes = str.encode() print('编码', bytes) print('解码', bytes.decode())
运行后果是:
编码 b'\xe7\xa0\x81\xe5\x86\x9c\xe9\xa3\x9e\xe5\x93\xa5\xe5\x8a\xa0\xe6\xb2\xb9' 解码 搞代码小搞加油
默认的编码格局是UTF-8,编码和解码的格局要雷同,不然会解码失败。
序列化和反序列化
在理论工作中咱们常常要将一个数据对象序列化成字符串,也会将一个字符串反序列化成一个数据对象。Python自带的序列化模块是json模块。
- json.dumps() 办法是将Python对象转成字符串
- json.loads()办法是将已编码的 JSON 字符串解码为 Python 对象
举个例子阐明下:
import json dict = {'学号': 1001, 'name': "张三", 'score': [{'语文': 90, '数学': 100}]} str = json.dumps(dict,ensure_ascii=False) print('序列化成字符串', str, type(str)) dict2 = json.loads(str) print('反序列化成对象', dict2, type(dict2))
运行后果是:
序列化成字符串 {"name": "张三", "score": [{"数学": 100, "语文": 90}], "学号": 1001} <class 'str'> 反序列化成对象 {'name': '张三', 'score': [{'数学': 100, '语文': 90}], '学号': 1001} <class 'dict'>
总结
本文具体介绍了Python中字符串str的各种常见用法,纯熟的把握str的各种用法是咱们的基本功。
我是搞代码小搞,再次感谢您读完本文。
全网同名【搞代码小搞】。不积跬步,无以至千里,享受分享的高兴
我是搞代码小搞,再次感谢您读完本文。