美文网首页大数据 爬虫Python AI Sqlpython呆鸟的Python数据分析
应届毕业生凭什么企业会给他20K的薪资?他的字符串笔记数十万字

应届毕业生凭什么企业会给他20K的薪资?他的字符串笔记数十万字

作者: 919b0c54458f | 来源:发表于2018-07-29 20:38 被阅读20次

    目录

    字符串操作

    字符串运算符

    字符串内置函数

    字符串索引

    字符串切片

    在字符串切片过程中指定步幅

    向字符串中插入变量

    修改字符串

    字符串内置方法

    bytes对象

    定义bytes对象字面量

    使用内置bytes()函数定义一个bytes对象

    bytes对象上的操作

    bytearray对象

    结论

    进群:125240963   即可获取数十套PDF或者零基础入门资料!

    *运算符

    * 运算符创建字符串的多个副本。如果s是一个字符串,n是一个整数,下面任何一种表达式都可以返回一个由n个s的副本所连接而成的字符串:

    s * n

    n * s

    以下是两种形式的示例:

    乘数操作数n必须是一个整数。你也许会认为它必须是一个正整数,但有趣的是,它可以是0或者负数,在这种情况下结果为空字符串。

    如果你要创建一个字符串并通过 "foo" * -8 为其赋值将其初始化成为一个空字符串,所有人都会认为你有点蠢。不过这样做确实是有效的。

    正如您在Python中的基本数据类型教程中所看到的一样,Python提供了许多内置于解释器并始终可用的函数。下面是一些可以作用于字符串的函数:

    Unicode是一个雄心勃勃的标准,它试图在每个可能的平台上,对各种可能的语言,为每个可能的字符提供数字编码。 Python 3广泛支持Unicode,包括允许字符串中使用Unicode字符。

    str(obj)

    返回一个对象的字符串表示

    事实上,Python中的任何对象都可以呈现为字符串。 str(obj)返回对象obj的字符串表示形式:

    可以通过索引访问各个字符,如下所示:

    尝试超出字符串末尾的索引会导致错误:

    字符串索引也可以用负数指定,在这种情况下,索引在字符串中由后向前开始:-1指向最后一个字符,-2指向倒数第二个字符,依此类推。以下是显示字符串中正负索引的相同图表"foobar":

    正数和负数索引

    下面是一些负数索引的例子:

    尝试使用超出字符串开头的负数进行索引会导致错误:

    对于任何字符串s和任何整数n(0 ≤ n ≤ len(s)),s[:n] + s[n:]将等于s:

    省略两个索引将完整地返回原始字符串。然而它不是原始字符串的副本,它是对原始字符串的引用:

    如果切片中的第一个索引大于或等于第二个索引,则Python返回一个空字符串。如果你正在寻找一种另类的生成空字符串的方式,那么这是一种方法:

    负数索引也可以与切片一起使用。-1表示最后一个字符,-2倒数第二个,依此类推,就像基本的索引一样。下图显示了如何使用正数索引和负数索引从字符串"foobar"中切割子字符串"oob":

    正负索引在字符串切片中的使用

    下面是对应的Python代码:

    在字符串切片过程中指定步幅

    还有一种切片语法的变形可以进行介绍。再添加一个参数:第三个参数指明步幅(也叫做步长),表明在切片中检索字符时每次跳过多少个字符。

    例如,对于字符串"foobar",切片0:6:2以第一个字符开头,以最后一个字符(整个字符串)结束,并且每次跳过第二个字符。如下图所示:

    带有步幅的字符串索引

    类似的,1:6:2指定以第二个字符(索引1)开头并以最后一个字符结束的切片,并且步幅值再次为2导致每次都有一个字符被跳过:

    另一个带有步幅的字符串索引

    说明的REPL代码如下:

    对于任何切片,可以省略第一个和第二个索引,并分别默认为第一个和最后一个字符:

    您也可以指定负数步幅值,在这种情况下,Python会从后向前逐步处理字符串。在这种情况下,起始/第一个索引应该大于结束/第二个索引:

    在上面的示例中,5:0:-2表示“从最后一个字符开始,每次后退2步,直到(但不包括)第一个字符”。

    当您后退时,如果省略第一个和第二个索引,则以直观的方式反转默认值:第一个索引默认为字符串的结尾,第二个索引默认为开头。下面是一个例子:

    下面是反转字符串的常见范例:

    Python的三种引用机制中的任何一种都可用于定义f-string:

    修改字符串

    简而言之,你做不到。字符串是Python认为不可变的数据类型之一,意味着无法更改。实际上,到目前为止您看到的所有数据类型都是不可变的。(Python确实提供了可变的数据类型,您很快就会看到。)

    在对象上调用方法的语法如下:

    这将调用对象obj上的方法.foo()。指定传递给方法的参数(如果有)。

    稍后在面向对象编程的讨论中,您将探索有关定义和调用方法的更多信息。目前,我们的目标是介绍Python支持的一些常用的用于对字符串对象进行操作的内置方法。

    在以下方法定义中,方括号([])中指定的参数是可选的。

    大小写转换

    本组方法对目标字符串执行大小写转换。

    s.capitalize()

    目标字符串首字母大写

    s.capitalize()返回一个s的副本,第一个字符转换为大写,所有其他字符转换为小写:

    非字母字符不变:

    s.lower()

    将字母字符转换为小写

    s.lower()返回s中所有字母字符转换为小写的副本:

    s.swapcase()

    转换字母字符大小写

    s.swapcase()返回一个s中大写字母字符转换为小写,小写字母转化为大写的副本:

    s.title()

    将目标字符串转化为单词首字母大写

    s.title()返回s的一个副本,其中每个单词的第一个字母转换为大写,其余字母为小写:

    该方法使用相当简单的算法。它并不试图区分重要和不重要的单词,而且它不能优雅地处理撇号,所有格或首字母缩略词:

    s.upper()

    将字母字符转化为大写

    s.upper()返回s中所有字母字符转换为大写的副本:

    查找和替换

    这些方法提供了在目标字符串中搜索指定子字符串的各种方式。

    该组中的每个方法都支持可选的和参数。这些参数在字符串切片时被解释:方法的操作仅限于目标字符串中从位置字符开始到(不包括)位置字符的部分。如果被指定了但没有,则该方法应用于目标字符串中从开始直到字符串的末尾的部分。

    s.count([, [, ]])

    计算目标字符串中子字符串的出现次数

    s.count()返回字符串s中非重叠子串出现的次数:

    计数被限制在由和所指定的子串内,如果参数被设定的话:

    s.endswith([, [, ]])

    判断目标字符串是否以给定子字符串结尾

    如果s以指定的结尾,s.endswith()返回True,否则返回False:

    判断被限制在由和所指定的子串内,如果参数被设定的话:

    s.find([, [, ]]

    在目标字符串中搜索给定的子字符串

    s.find()返回在s中找到子字符串的最小索引:

    如果指定的子串没有找到,该方法返回-1:

    检索被限制在由和所指定的子串内,如果参数被设定的话:

    s.index([, [, ]])

    在目标字符串中搜索给定的子字符串

    这个方法与.find()功能相同,只是在查找不到时会产生一个异常而非返回-1:

    s.rfind([, [, ]])

    从末尾开始搜索目标字符串中的给定子字符串

    s.rfind()返回在s中找到子字符串的最大索引:

    和.find()一样,如果指定的子串没有找到,该方法返回-1:

    检索被限制在由和所指定的子串内,如果参数被设定的话:

    s.rindex([, [, ]])

    从末尾开始搜索目标字符串中的给定子字符串

    这个方法与.rfind()功能相同,只是在查找不到时会产生一个异常而非返回-1:

    s.startswith([, [, ]])

    判断目标字符串是否以给定子字符串开头

    如果s以指定的开头,s.startswith()返回True,否则返回False:

    判断被限制在由和所指定的子串内,如果参数被设定的话:

    字符分类

    此组方法根据字符串包含的字符对字符串进行分类。

    s.isalnum()

    确定目标字符串是否由字母数字字符组成

    如果s是非空的且其所有字符都是字母或数字,s.isalnum()返回True,否则返回False:

    s.isalpha()

    判断目标字符串是否由字母字符组成

    如果s是非空的并且其所有字符都是字母,s.isalpha()返回True,否则返回False:

    s.isdigit()

    判断目标字符串是否由数字字符组成

    如果s是非空的并且其所有字符都是数字,s.digit()返回True,否则返回False:

    s.isidentifier()

    判断目标字符串是否是有效的Python标识符

    如果s根据语言定义是有效的Python标识符,s.isidentifier()返回True,否则返回False:

    注意:与Python关键字匹配的字符串.isidentifier()将返回True,即使它实际上不是有效的标识符:

    您可以调用iskeyword()函数测试字符串是否与Python关键字匹配,该函数包含在名为keyword的模块中。一种可能的方法如下所示:

    如果你真的想确保一个字符串可以作为一个有效的Python标识符,你应该检查.isidentifier()是否为True以及iskeyword()是否为False。

    请参阅 Python Modules and Packages—An Introduction阅读有关Python模块的更多信息。

    s.islower()

    判断目标字符串的字母字符是否为小写

    如果s是非空的并且它包含的所有字母字符都是小写的,s.islower()则返回True,否则返回False。忽略非字母字符:

    s.isprintable()

    判断目标字符串是否完全由可打印字符组成

    如果s为空或其包含的所有字母字符都是可打印的,s.isprintable()返回True。如果s包含至少一个不可打印的字符,则返回False。忽略非字母字符:

    注意:如果s是空字符串,这是唯一个返回True的.isxxxx()方法。所有其它方法都对空字符串返回False。

    未完待续,这人确实很负责。一个字符串的知识点!居然能写出这么全面!你值得这20K的月薪!

    相关文章

      网友评论

      本文标题:应届毕业生凭什么企业会给他20K的薪资?他的字符串笔记数十万字

      本文链接:https://www.haomeiwen.com/subject/apetvftx.html