上篇对python中的字符串内置方法进行了列举和简单说明,但这些方法太多,逐一背下效率实在太低,下面我来对这些方法按照其功能进行总结:

1.字母大小写相关(中文无效)

  1.1 S.upper() -> string

    返回一个字母全部大写的副本

  1.2 S.lower() -> string

    返回一个字母全是小写的副本

  1.3 S.swapcase() -> string

    返回一个字母大小写转换后的副本

  1.4 S.title() -> string

    将单词的首字母大写,即为所谓的标题

    方框里是中文的编码,可以发现 s 还是大写了,说明会无视其他类型的字符,找到英文单词就将其首字母大写

  1.6 S.capitalize() -> string

    将字符串的首字母大写,要注意不是所有单词,注意和上面的区别

    而且当字符串的首字符不是字母的时候是无效的

  1.5 S.isupper() -> bool

    判断字符串内的字母是否全是大写,字符串中必须要有字母,返回布尔值

    和其他字符混合时情况如下

    会无视其他字符,只对字母进行判断

  1.6 S.islower() -> bool

    判断字符串内的字母是否全是小写,字符串中必须要有字母,返回布尔值

    和大写判断是相对应的,这里不继续举例了。

  1.7 S.istitle() -> bool

    判断字符串是否符合标题格式,返回布尔值,关于python字符串中何为标题上面也是详细介绍了,这里不多说。


2.字符串组成字符判断

  字符串内的字符除了是英文字母之外,还可以有其他字符,有一些方法可以对字符串的组成字符进行判断

  2.1 S.isalpha() -> bool

    判断字符串是否全是由字母组成,返回布尔值

    

    只有是全字母才行,有数字和中文等都不行

  2.2 S.isdigit() -> bool

    判断字符串是否全是由数字组成,返回布尔值

    和上面类似,不多说明

  2.3  S.isalnum() -> bool

    判断字符串是否全是由字母和数字组成,返回布尔值

    是上面两种判断的合并

  2.4  S.isspace() -> bool

    判断字符串是否都是由空字符组成,返回布尔值

  

    空字符不意味着字符串为空,如空格,\n 等特殊字符都算是空字符


3.字符串是否是以某特定字符开头或结尾的判断

  3.1  S.startswith(prefix[, start[, end]]) -> bool

    判断是否是以某特定字符开头,返回布尔值

    默认是从第一个字符开始,也就是索引值为0开始,可以用索引来指定对某个范围的字符进行判断

  3.2 S.endswith(suffix[, start[, end]]) -> bool

    判断是否是以某特定字符结尾,返回布尔值

    和上面类似,不多解释


关于字符串中带判断的就是这么多,下面总结一下究竟可以判断什么:

  1.字符串里的字母是否全是小写或大写

  2.字符串是否符合标题格式的判断

  3.字符串的组成是否是全字母,全数字,或全是字母和数字,或者全是空字符

  4.字符串是否是以给定的字符开头或结尾


4.在字符串内寻找给定字符

  4.1 S.find(sub [,start [,end]]) -> int

    在原字符串内寻找给定的字符,找到了的第一个,返回其索引值,没找到返回-1

  注意是从左向右寻找,找到的第一个,像这里的 o ,在原字符串有多个,但只返回了第一个的索引值,另外当给的字符不只一个时,按给的字符串的第一个字符作为基准点,如这里的 co 返回的就是 c 的索引值。当然可以指定范围,但指定范围其并不意味会重新计算索引值,得到的依然是相对于整个字符串的索引。

  4.2 S.rfind(sub [,start [,end]]) -> int

    与上面的相同,只不过是从右往左寻找。

  4.3  S.index(sub [,start [,end]]) -> int

    和 find() 方法基本一样,只不过 find() 找不到时返回的是-1,而 index() 找不到是会报错。

  4.4 S.rindex(sub [,start [,end]]) -> int

    同理,这个是从右往左找


5.字符串出现的计数

  和寻找类似,不过上面介绍的寻找的方法都只是找到第一个,如果我想知道某个特定的字符串在原字符中出现了多少次的时候怎么办,就可以使用计数了。

  5.1 S.count(sub[, start[, end]]) -> int

  

    这个方法会找到范围内所有指定的子字符串,返回其出现的次数,没找到的话则返回0


6.字符的替换

  注意,虽然说是替换,但原字符串是不可变的,我在上篇也说过,字符串的所有方法都没有改变原字符串本身,都是返回了一个新的对象。

  所谓的替换,只是针对于返回对象的效果而已。

  5.1 S.replace(old, new[, count]) -> string

  

  

  可以看出原字符串本身是不变的,只是返回了一个新对象,这个对象在内存之中,如果后面要有利用这个新对象的话,可以将其赋值给变量,当然也可以当做函数的参数直接传参,但传参的时候要注意数据类型。

  其中,count 指定要替换的次数,不指定则全部替换


7.字符串中的对齐和填充等

  这里的操作类似于在world中编辑文字,所以可以联想理解。

  7.1 S.ljust(width[, fillchar]) -> string

    左对齐

     首先要体现对齐的效果要有一个前提,那就是那一行不能是满的,否则无论怎么对齐也没有用,而在python中,一个字符串对象默认就是占满一行的,其行宽就是字符串是长度。

     但是,当我强制声明这一行的宽度是多少,而这个宽度(width)大于原字符串的长度(小于无效,但不会报错),此时对齐就有效果了。

    

     为了体现效果我将光标放上去了,否则都是空格看不出来。

    我们将一行的宽度设置为15,而原字符串我用 len()内置函数得出其长度,可以知道原字符串长度为11。当我指定一行长为15,并设置左对齐,右边的多出来的位置就默认用空格填充了,当然我们也可以指定用什么填充(fillchar),但只能是字符串类型。

    注意,只能用一个字符,且不能用中文。

  7.2  S.rjust(width[, fillchar]) -> string

    右对齐,原理同上

  7.3  S.center(width[, fillchar]) -> string

    居中对齐,原理也一样,但是这里指定的宽度是两边的和,且多出来的位置无法平均分配到两边的话会优先给右边

    设置为15时,多出来的位置是15-11=4,可以平均分到两边去,每边都是4/2=2个位置,但设置为16时,16-11=5,5个位置无法平均分配,此时优先给右边多一个。

  7.4 S.zfill(width) -> string

    快捷的填充方式,只不过只能是右对齐,且填充的内容为 0

  7.5 S.strip([chars]) -> string or unicode

    除了填充外,我们还可以反填充,这个方法是去掉格式类似于填充后的字符串内的填充内容的。

    但是,这并不意味着我们要使用了对齐填充方法以后才能用,只有格式符合就可以。

    默认是去除两边的空格,不过要注意,中间的空格是不去除的

    当然,我们还可以指定去除的字符

    只要填充内容是一样的,指定填充字符的时候用几个都无所谓,就算超过原字符串中的填充字符也可以。

  7.6 S.lstrip([chars]) -> string or unicode

    和上面的类似,不过这个只去除左边的填充内容

  7.7 S.rstrip([chars]) -> string or unicode

    同类,只去除右边的


8.字符串的分隔

  字符串的分隔是用过给定的标记进行分隔后,返回一个由被分隔后的字符串组成的新对象,就像切菜一样,画好标记,手起刀落,菜就分成了几段了。

  8.1 S.split([sep [,maxsplit]]) -> list of strings

  方法返回的是一个列表对象,seq就是给定的字符串,maxsplit 表示分隔的最大次数,默认只要出现给定的分隔字符串都会进行分隔。

  其中有一些很奇怪的行为特性,当两个分隔字符相邻时,列表的对应位置会出空字符串元素,最大次数为0时不分隔,分隔字符在字符串的最后时也会出现空字符串。

  另外,分隔是从左向右的,是全部分隔,方向倒是不重要,结果是一样的,但如果指定了最大次数,那就有意义了,因为分隔次数的计算是从左向右的。

  8.2 S.rsplit([sep [,maxsplit]]) -> list of strings

  同上,只不过分隔方向是从右向左

  8.3 S.splitlines(keepends=False) -> list of strings

  按照换行符分隔,注意linux中的换行符为 \n ,windows中的换行符为 \r \n

  上面的分隔方式都要一个特点,那就是指定的分隔字符是不会出现到分隔后的结果中的

  8.4  S.partition(sep) -> (head, sep, tail)

  和上面的分隔方法相比,这种分隔方法返回的是一个元祖对象,且分隔次数只有一次,另外被按照('分隔字符之前','指定的分隔字符','分隔字符之后')排序

  另外,也是找到的第一个,是从左向右找的。

  8.5 S.rpartition(sep) -> (head, sep, tail)

  同上,不过是从右往左找。


9.特殊字符转义

  9.1 S.expandtabs([tabsize]) -> string

   将制表符(\r )换成空格,默认一个制表符转换8个空格,可以用 tabsize 指定转换空格的个数


10.字符串编码

  10.1 S.decode([encoding[,errors]]) -> object

  解码

  10.2 S.encode([encoding[,errors]]) -> object

  编码

  编解码问题会在文件操作中细讲


11.字符串拼接

  11.1 S.join(iterable) -> string

  前面的博文详细讲过,这里不再重复


12.字符串格式化

  12.1 % 运算符

  前面的博文详细讲过,这里不再重复

  12.2  S.format(*args, **kwargs) -> string

  % 格式化的升级版,一般% 就够用了,所以我也没怎么了解过,这里就不乱说了。


13.字符串过滤

  13.1 S.translate(table [,deletechars]) -> string

  根据参数table给出的表(翻译表,翻译表是通过maketrans方法转换而来)转换字符串的字符, 要过滤掉的字符放到 del 参数中。

  个人也没用过,以后有机会就进行补充。


  更多的参考资料:戳这里

7.python字符串-内置方法分析的更多相关文章

  1. 6.python字符串-内置方法列举

    所谓内置方法,就是凡是字符串都能用的方法,这个方法在创建字符串的类中,下面是总结: 首先,我们要学习一个获取帮助的内置函数 help(对象) ,对象可以是一个我们创建出来的,也可以是创建对象的那个类, ...

  2. python字符串-内置方法列举

    所谓内置方法,就是凡是字符串都能用的方法,这个方法在创建字符串的类中,下面是总结: 首先,我们要学习一个获取帮助的内置函数 help(对象) ,对象可以是一个我们创建出来的,也可以是创建对象的那个类, ...

  3. python字符串内置方法

    网上已经有很多,自己操作一遍,加深印象. dir dir会返回一个内置方法与属性列表,用字符串'a,b,cdefg'测试一下 dir('a,b,cdefg') 得到一个列表 ['__add__', ' ...

  4. python字符串-内置方法用法分析

    1.字母大小写相关(中文无效) 1.1 S.upper() -> string 返回一个字母全部大写的副本

  5. python 字符串内置方法实例

    一.字符串方法总结: 1.查找: find(rfind).index(rindex).count 2.变换: capitalize.expandtabs.swapcase.title.lower.up ...

  6. Python字符串内置方法使用及年龄游戏深入探究

    目录 作业 ==程序代码自上往下运行,建议自上而下的完成下列任务== 作业 使用代码实现以下业务逻辑: 写代码,有如下变量name = " aleX",请按照要求实现每个功能: 移 ...

  7. Python 字符串内置方法笔记

    一. 大小写转换 ① capitalize() capitalize() #字符串首字母大写 >>> str0 = 'hello World' >>> str0.c ...

  8. python数据类型内置方法 字符串和列表

    1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...

  9. python 字典内置方法get应用

    python字典内置方法get应用,如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这 ...

随机推荐

  1. HTML控件-Select

    从今天开始,编写对于html控件的特性的探索文章,会广泛的引用网络的资源,所以本文的版权属于广大人民群众,欢迎转载,也同样禁止商业应用. [高手勿喷,标签页点击红色叉叉] select控件有一个特性: ...

  2. Hive表数据导出

    方式一: hadoop命令导出 hadoop fs -get hdfs://hadoop000:8020/data/page_views2 pv2  方式二:通过insert...directory导 ...

  3. jmeter随笔(8)--请求post的 数据为空

    1.请求post的 数据为空 分析:发现是java 解决方法: 查看 2.获取文本中数据乱码问题 问题:文本保存为UTF-8编码格式 获取的数据乱码: 分析:这是编码格式的问题 解决办法: 将文件保存 ...

  4. 使用git管理github上的项目

    使用git可以把我们的项目代码上传到github上面去,方便自己管理,如何使用git?觉得是每位程序猿所必需要有的谋生技能,所以在此记录一下自己学会使用的这个过程: 一.需要注册github账号,这样 ...

  5. 学习记录 java 值类型和引用类型的知识

    1. Java中值类型和引用类型的不同? [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值, 那么调用这个方法是传入的变量的值也将改变 ...

  6. haproxy配置文件简单管理

    版本:python3功能:对haproxy配置文件进行简单的查询.添加以及删除功能操作流程:1.根据提示选择相应的选项2.进入所选项后,根据提示写入相应的参数3.查询功能会返回查询结果,添加.删除以及 ...

  7. ifdown eth0 && idup eth0 ifdown --exclude=l0 -a && ifup --exclude=lo -a

  8. 【MySQL】frm文件解析

    官网说明:http://dev.mysql.com/doc/internals/en/frm-file-format.html frm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果出 ...

  9. 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

    参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innod ...

  10. OpenGL函数解析之glMatrixMode(GLenum mode)

    函数原型:void glMatrixMode(GLenum mode) 函数说明:glMatrixMode函数只有一个枚举类型的参数mode,用来指定哪一个矩阵堆栈式下一个矩阵操作的目标. mode有 ...