str.方法的整理(字符串类型内置方法的具体使用)
<1>str.strip()、str.lstrip()和str.rstrip()
1' str.strip()(主要方法)
方法:str.strip(self,chars)
作用:移除字符串头与尾的指定字符。(核心是头与尾),移除的结果作为一个返回值,原字符串仍不变。
chars参数:需要移除的字符串,如果省略或者为None,则默认移除空格。
要点
①:移除的字符串过程为从外向内,如果最外边没有要移除的字符串(假设里面却有的话),此时里面的那个字符串是不会被移除的。
s1='/a=abcd*/-a' s2=s1.strip('a') print(s1) print(s2) 结果: /a=abcd*/-a /a=abcd*/- 需要移除的字符串是a,左边a在里面无法移除,右边最外边有一个a,可以移除
②:当要移除多个字符串(假设‘ab’)的时候,移除没有前后顺序,只有被移除对象两边最外面有b就移除b,移除后的最外边如果还有a则继续继续移除a。
#① s1='b*a /abcd*/b a-' s2=s1.strip('ab') print(s1) print(s2) #结果: b*a /abcd*/b a- *a /abcd*/b a- 移除原则:由外向内,内部字符串只能等待外边全部移除完毕才能移除。 #② s1='ba/abcd*/ a-ab' s2=s1.strip('ab') print(s1) print(s2) #结果: ba/abcd*/ a-ab /abcd*/ a- 先把b移除了,b移除完a就暴露到最外边了,这样就可以移除a。这里可以看到移除ab部分先后顺序,只要谁在外面谁先移除。
③:所以所strip移除字符串是有限制的,不是说有就移除,而是最外边有才移除,在里面不行,除非移除的多个字符串中的其他字符串被移除了,将这个字符串暴露到最外边了,才会开始移除。
s1='+/*-/=abcd*/*/+ -' s2=s1.strip('/-*+= ') print(s1) print(s2) 结果: +/*-/=abcd*/*/+ - abcd 此时abcd两边都是一些特殊字符,想要去除就直接将所有字符放入需要移除的字符串中就可以全部移除了。不管怎么移除,肯定会依次将所有需移除的字符暴露在最外边。
注:官方文档内容,供参考:
返回原字符串的副本,移除其中的前导和末尾字符。 chars 参数为指定要移除字符的字符串。 如果省略或为 None,则 chars 参数默认移除空格符。 实际上 chars 参数并非指定单个前缀或后缀;而是会移除参数值的所有组合: >>> >>> ' spacious '.strip() 'spacious' >>> 'www.example.com'.strip('cmowz.') 'example' 最外侧的前导和末尾 chars 参数值将从字符串中移除。 开头端的字符的移除将在遇到一个未包含于 chars 所指定字符集的字符时停止。 类似的操作也将在结尾端发生。 例如: >>> >>> comment_string = '#....... Section 3.2.1 Issue #32 .......' >>> comment_string.strip('.#! ') 'Section 3.2.1 Issue #32'
官方
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2' str.lstrip()和str.rstrip()
左移除和右移除(前移除和尾移除)
方法类似前面的str.strip(),只不过是只移除前面或者只移除尾部字符串。移除规则同上。
左移除: s1='-*abc*-' s2=s1.lstrip('-') print(s1) print(s2) #结果: -*abc*- *abc*- lstrip只移除左边的。右边的不管 右移除: s1='-*abc*-' s2=s1.rstrip('-') print(s1) print(s2) #结果: -*abc*-r -*abc* rstrip只移除右边的。左边的不管
左边、右边移除
注:官方文档内容,供参考:
str.lstrip([chars]) 返回原字符串的副本,移除其中的前导字符。 chars 参数为指定要移除字符的字符串。 如果省略或为 None,则 chars 参数默认移除空格符。 实际上 chars 参数并非指定单个前缀;而是会移除参数值的所有组合: >>> >>> ' spacious '.lstrip() 'spacious ' >>> 'www.example.com'.lstrip('cmowz.') 'example.com' str.rstrip([chars]) 返回原字符串的副本,移除其中的末尾字符。 chars 参数为指定要移除字符的字符串。 如果省略或为 None,则 chars 参数默认移除空格符。 实际上 chars 参数并非指定单个后缀;而是会移除参数值的所有组合: >>> >>> ' spacious '.rstrip() ' spacious' >>> 'mississippi'.rstrip('ipz') 'mississ'
官方
==================================================================================================
<2>str.center()
方法:str.center(self,width,fillchar)
作用:返回总长度为width的字符串,原字符串在正中,使用指定的fillchar填充两边的空余部分
参数:指定的fillchar给的话,默认使用ASCII空格符
fillchar为空时:用空格填充 s1='中国' s2=s1.center(20) #默认不传填充物 print(s2,'这是末尾') #结果: 中国 这是末尾 ------------------------------------------------ fillchar不为空:填充指定字符串 s1='武汉' s2=s1.center(20,'*') #用*当做填充物 print(s2) #结果: *********武汉********* ------------------------------------------------ 当width减去原字符串个数结果为奇数时候:左多右少 s1='高新' s2=s1.center(7,'+') print(s2) #结果: +++高新++
要点:
①:如果width小于等于原字符串的总长度,则返回原字符串。
s1='湖北武汉东湖高新' s2=s1.center(7,'*') print(s2) #结果: 湖北武汉东湖高新
注:官方文档内容,供参考:
str.center(width[, fillchar]) 返回长度为 width 的字符串,原字符串在其正中。 使用指定的 fillchar 填充两边的空位(默认使用 ASCII 空格符)。 如果 width 小于等于 len(s) 则返回原字符串的副本。
center官方
==================================================================================================
<3>str.join()
方法:str.join(self,interable)
作用:a.join(b),将a作为分隔符分隔b中的每一个元素,这里的b需要是一个可迭代对象。返回一个被a分隔了b的字符串
参数:可迭代对象
要点:①如果可迭代对象里面存在任何非字符串值(包括bytes对象)时候,会显示乱码()(在pycharm中)。
print('a'.join('大家好')) #大a家a好 将a添加到‘大家好’中,相当于将a作为分隔符分隔了字符串‘大家好’ print('a'.join('大')) #大 如果后面的参数是一个单字符,或者是包含单个元素的可迭代对象,就没a啥事了,直接返回这个参数(或者返回迭代对象中的字符串)
s=['abcd']print('#'.join(s)) 结果:abcd
注:官方文档内容,供参考:
str.join(iterable) 返回一个由 iterable 中的字符串拼接而成的字符串。 如果 iterable 中存在任何非字符串值包括 bytes 对象则会引发 TypeError。 调用该方法的字符串将作为元素之间的分隔。
==================================================================================================
<4>str.count()
方法:str.count(self,x,__start,__end)
作用:返回字符串x,在[start,end]范围内非重叠出现的次数
参数:关键字符串x,开始 结束
要点:①[start,end]方法与切片方法一致,顾头不顾尾
②start,end不写默认范围为全部
print('abcacd'.count('c')) print('abcaabcd'.count('abc')) print('abcacd'.count('c',0,4)) #结果: 2 2 1
注:官方文档内容,供参考:
str.count(sub[, start[, end]]) 返回子字符串 sub 在 [start, end] 范围内非重叠出现的次数。 可选参数 start 与 end 会被解读为切片表示法。
官方str.count()
==================================================================================================
<5>、str.split()
方法:str.split(self,sep,maxsplit)
作用:找出字符串s中的sep字符,将sep当做分隔依据拆分该字符串s,返回一个拆分开来的列表
参数:sep:分隔依据 字符串,maxsplit:最大拆分次数,不写默认全部
要点:①如果有连续拆分依据的字符串,则连续拆分的字符串不会被组合在一起而是被视为分隔空字符串
print('1,,,,2'.split(',')) #['1', '', '', '', '2'] 这里用逗号','来作为分隔拆分依据,有多个连续逗号,此时连续逗号之间有多少个空字符串,就拆分多少个空字符串加入列表
②拆分依据字符串可能由多个字符组成,此时将多个字符当做整体作为拆分依据进行拆分就行
print('1ab2a3abbab5'.split('ab')) #['1', '2a3', 'b', '5'] 拆分依据为‘ab’,将‘ab’作为整体作为拆分依据
③使用指定的分隔符拆分空字符串将返回 ['']
print(''.split('ab')) #['']
注:官方文档内容,供参考:
未完待续......
(以下为添加模板)
==================================================================================================
<n>、str.()
方法:
作用:
参数:
要点:
注:官方文档内容,供参考:
str.方法的整理(字符串类型内置方法的具体使用)的更多相关文章
- day06-数字类型、字符串类型内置方法
目录 数字类型内置方法 字符串类型内置方法 有序 or 无序 可变 or 不可变 数字类型内置方法 1. int()强制类型转化成整型 age_str = '18' # 定义字符串 age = int ...
- day08 数字,字符串类型内置方法
目录 数字类型内置方法 为什么要有数据类型? 定义方式 方法 储存一个值or多个值? 有序or无序?(有序:有索引, 无序:无索引) 可变or不可变(可变:值变id不变,不可变:值变id也变) 字符串 ...
- Python基础之字符串类型内置方法
目录 1. 字符串类型 2. 常用操作及内置方法 3. 其他内置方法 1. 字符串类型 用途:姓名,性别等 定义: name1 = 'zhaojun' name2 = "zhaojun&qu ...
- Python-数据类型内置方法(1)
目录 数字类型内置方法 整形(int) 浮点型(float) 字符串类型内置方法 优先掌握 需要掌握 了解 列表类型内置方法 优先掌握 需要掌握 数字类型内置方法 整形(int) 作用:年龄 定义:x ...
- str类型内置方法
目录 str类型内置方法 用途 定义方式 常用操作和内置方法 优先掌握 需要掌握 了解 存一个值or多个值 有序or无序 可变or不可变 强化训练 str类型内置方法 用途 字符串数字.字母.下划线组 ...
- python-数字类型内置方法
数字类型内置方法 为什么要有数据类型? 数据是用来表示状态的,不同的状态就应该用不同的数据类型去表示 整型(int) 用途:年龄.号码.银行卡号等 定义:可以使用int()方法将纯数字的字符串转换为十 ...
- day07-列表类型/元组类型/字典类型/集合类型内置方法
目录 列表类型内置方法 元组类型内置方法 字典类型内置方法 集合类型内置方法 列表类型内置方法 用来存多个元素,[]内用逗号隔开任意数据类型的元素 1. list()强制类型转换 print(list ...
- python字符串常用内置方法
python字符串常用内置方法 定义: 字符串是一个有序的字符的集合,用与存储和表示基本的文本信息. python中引号中间包含的就是字符串. # s1='hello world' # s2=&quo ...
- python字符串处理内置方法一览表
python字符串处理内置方法一览表 序号 方法及描述 1 capitalize()将字符串的第一个字符转换为大写 2 center(width, fillchar) 返回一个指定的宽度 widt ...
随机推荐
- 腾讯云Unubtu 16.04 (gunicorn+supervisor+ngnix+mongodb)部署Flask应用
1.申请腾讯云服务 我申请了免费使用的云服务器 ,选择安装的Linux版本是ubuntu16.04.1 LTSx86_64.我个人PC安装使用的也是这个版本,比较熟悉些. 详细参考帮助文档. 2.登录 ...
- 0511JS流程练习
一.输入三个数,判断大小 var one = prompt("请输入第一个数"); var two = prompt("请输入第二个数"); var three ...
- spring事务机制
一.Java动态代理 1.定义 Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理. 默认情况下会采用JDK的动态代理实现AOP . 2. ...
- USB/GPIO/SDIO
通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范.它只有4根线,两个电源(5V,地线),两个数据 ...
- 关于Linux虚拟化技术KVM的科普 科普一(先用起来!)
是骡子是马是拉出来溜溜,通过<KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机>跑一遍,就会对KVM.QEMU-KVM有个大概的认识了. qemu-kvm已经不单独存在,qemu加上 ...
- app后端设计(6)-- LBS
在LBS的应用中,一个基本的需求是查找附近的用户,现在有两种做法: 1. 使用mysql的空间数据库,具体做法参考:http://blog.sina.com.cn/s/blog_a48af8c0010 ...
- 如何查找Linux服务器上JDK安装路径?
成功远程到你要部署软件的Linux服务器上.这是第一步. 查看JDK版本:java -version 查看java执行路径:which java 查看JAVA_HOME路径:echo $JAVA_HO ...
- 用Java为Hyperledger Fabric(超级账本)开发区块链智能合约链代码之部署与运行示例代码
部署并运行 Java 链代码示例 您已经定义并启动了本地区块链网络,而且已构建 Java shim 客户端 JAR 并安装到本地 Maven 存储库中,现在已准备好在之前下载的 Hyperledger ...
- 理解 RxJava 的线程模型
来源:鸟窝, colobu.com/2016/07/25/understanding-rxjava-thread-model/ 如有好文章投稿,请点击 → 这里了解详情 ReactiveX是React ...
- BZOJ_3944_Sum_杜教筛
BZOJ_3944_Sum_杜教筛 Description Input 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 Output 一共T行,每 ...