通过本指南了解Python编程语言中如何处理字符串。
在任何编程语言中,字符串都是一个非常重要的概念,要学会如何处理,Python也不例外。
在本指南中,我希望教给您Python中字符串的基础知识以及如何处理它们。
我还会运行一些Python编程语言中可用的辅助函数。
在开始本教程之前,我强烈建议查看Python入门指南和Python语法介绍。
Python中的字符串识字法
在Python中,字符串字元由单引号 (‘ ‘) 或双引号 (” “) 表示。
这意味着,如果使用单引号或双引号,它将被认为是相同的值。
例如,字符串’pimylifeup’被Python解释器认为与 “pimylifeup “相同。
也可以通过使用print()函数来显示字符串文字,而不需要先给它分配一个变量。
print("pimylifeup")
print('pimylifeup')
在Python中把一个字符串赋值给一个变量。
将一个字符串赋值给一个 Python 变量是一个直接的任务。
要将一个字符串分配给一个变量,你所需要做的就是使用变量名,后面是等号(=),然后是你要设置的字符串(”example”)。
只要记得定义一个字符串,你需要用单引号或双引号来包裹它。
在下面的例子中,可以看到,设置分配给变量名为example的字符串值为 “pimylifeup”。
example = "pimylifeup"
print(example)
定义一个多行字符串
使用Python编程语言,可以定义跨越多行的字符串。
为了能够定义一个多行字符串,需要用三个双引号(“””)开始和结束字符串。
在定义的字符串中存在的地方插入换行符。
使用双引号的例子
exampleString = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Cras quis massa et ex faucibus ullamcorper.
Nullam scelerisque ex magna, molestie."""
print(exampleString)
字符串是数组
关于Python中的字符串,有一件重要的事情需要了解,那就是它们可以像数组一样被处理。
每一个字符都是数组中的一个位置,字符串的第一个字母在索引0处。
例如,来看看如果想单独检查每个字母,值为 “pimylifeup “的字符串会是什么样子。
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
P I M Y L I F E U P
从字符串中抓取单个字母
由于可以把一个字符串当作一个数组来处理,所以从其中抓取一个字母是相当直接的。
exampleStringName[Index Position]
需要做的就是利用字符串变量、方括号([ ])和要抓取的字母的索引位置。
检索单个字符的例子
例如,假设有一个名为arrayStringExample的字符串,其值为 “PiMyLifeUp Python Strings Example”。
如果要检索这个字符串的第三个字母,就需要使用方括号([ ])内的索引位置2。
记住,计数时,0是字符串的第一个字母。
arrayStringExample = "PiMyLifeUp Python Strings Example"
print(arrayStringExample[2])
字符串分片
就像在Python中处理数组一样,可以对一个字符串进行分片。
通过对一个字符串的切片,你可以检索一个字符的选择,而不是只检索一个。
exampleStringName[StartIndexPosition:EndIndexPosition]
要切割一个字符串,需要知道想要的文本的开始和结束位置。
末尾位置应该是你想要的最后一个字符之后的索引。你将在下面的例子中看到这种行为。
在字符串上使用Slice的例子
在这个例子中,假设有一个名为 “exampleStringName “的变量,其中设置了字符串 “PiMyLifeUp Python Strings Example”。
exampleStringName = "PiMyLifeUp Python Strings Example"
有了这个,从字符串中删除 “Python “一词。
为了得到这个词,需要从索引11(词的开始)切到索引17(词的后面)。
exampleStringName = "PiMyLifeUp Python Strings Example"
print(exampleStringName[11:17])
如果把两个索引位置弄对了,应该看到以下结果被打印出来。
Python
获取一个字符串的长度
在Python中,可能会想获得一个字符串的长度。
为了能够得到一个字符串的长度,需要利用len()函数。
length = len(VariableName)
当len()函数用于一个字符串变量时,它返回其中存在的字符数。
使用len()获取一个字符串长度的例子。
在这个例子中,要获取一个字符串的长度,其值为 “PiMyLifeUp Python Strings Example”。
通过利用len()函数来实现。
exampleStringName = "PiMyLifeUp Python Strings Example"
print(len(exampleStringName))
运行这个代码示例后,应该得到字符串的长度。
33
有一点应该知道,len()方法返回的是字符数,从1开始计算,而不是0。
如果你想使用这个方法来获取字符串中的最后一个字符,需要从结果中减去一个。
转义字符串
有时,可能想在字符串中使用某些字符,这可能会破坏字符串。为了解决这个问题,将深入研究一种叫做转义的东西。
在本节中,将学习Python中转义字符(\)的一些用法。
转义也可以用来定义某些东西,比如换行(\n)。
非法字符的例子
首先要学会鉴别的是 “非法 “字的使用。
非法字符是指任何破坏该字符串定义的字符,使解释器无法理解它。
为了展示这一点,使用一个示例字符串,使用双引号来定义字符串,同时也尝试在字符串中使用它们。
sampleString = "Hello this is a simple sample "string" that showcases escaping"
如果你尝试在Python中运行这段代码,你会看到以下错误。
SyntaxError: invalid syntax
这个错误表明Python解释器无法理解所写的内容,因为它不符合预期的语法。
要解决这个错误,可以在每个双引号旁边使用转义字符(/)。
通过这样做,Python 将把这些解释为字面的双引号,而不是编程语法的一部分。
sampleString = "Hello this is a simple sample \"string\" that showcases escaping"
Escape字的其他用法
下面是一个表格,显示了Python中字符串中转义符的其他用法。
Code | Result |
---|---|
\' |
Single Quote (' ) |
\" |
Double Quote (" ) |
\\ |
Back Slash (\ ) |
\n |
New Line |
\r |
Carriage Return |
\t |
Tab |
\b |
Backspace |
\f |
Form Feed |
\ooo |
Octal Value |
\xhh |
Hex Value |
检查一个字符串是否包含
如果想检查一个字符串是否包含或不包含某个短语,Python 有两个关键字很方便。
这两个关键词是在和不在。这两个关键词在比较时都是区分大小写的,所以 “Hello “这个词不会和 “hello “匹配。
"Hello" in samplePhrase
"Hello" not in samplePhrase
这两个关键字的工作原理是,首先指定你要检查的字符(或字符串),然后是关键字(在或不在),接着是你要检查的字符串。
在我们的两个例子中,利用一个名为examplePhrase的变量,其值为 “Pi My Life Up’s Tutorial on String in Python”。
关键字和字符串中的
通过使用in关键字,能够看到一个字符或字符串是否存在于另一个字符串中。
"Hello" in samplePhrase
当找到该词组或字符时,in关键字将返回True,当没有找到时返回False。
在字符串上使用in关键字的例子
为了展示in关键字是如何工作的,检查samplePhrase变量,看看其中是否存在 “Tutorial “这个词。
samplePhrase = "Pi My Life Up's Tutorial on String in Python"
hasTutorial = "Tutorial" in samplePhrase
print(hasTutorial)
由于使用的是in关键字,应该看到上面的例子打印出的结果是True,因为这个词组中存在Tutorial这个词。
关键字和字符串中的不
not in关键字可以用来检查某个字符串或字符是否不在另一个字符串中。
"Hello" not in samplePhrase
当字符串中不存在短语或字符时,使用not in关键字将返回True,而当它存在时将返回False。
在字符串上使用in关键字的例子
为了让你了解not in关键字是如何工作的,我们将检查我们的示例短语是否包含 “树莓 “这个词。
samplePhrase = "Pi My Life Up's Tutorial on String in Python"
doesntHaveRaspberry = "Raspberry" in samplePhrase
print(doesntHaveRaspberry)
由于我短语不包含Raspberry这个词,应该看到结果True被Python打印出来。
格式化字符串
关于在Python中处理字符串,最有用的事情之一就是如何格式化它们。
本节将快速运行一个最有用的字符串函数,format()函数,以及大括号占位符({ })。
如果您关注了我们关于 Python 变量的指南,您应该已经了解到您不能在字符串中添加数字。
尽管有一种方法可以将数字转换为字符串,但有一种更为简洁的方法可以实现。
format()方法
使用format()方法,你可以在Python中取一个包含占位符({ })的字符串并将数据插入其中。
"My Example String with {}".format("Replacements Go Here")
例如,使用这种方法,我们可以取一个字符串,如 “我的年龄是{ }”,并插入值20。
"My age is {}".format(20)
每添加一个额外的占位符都需要在.format()方法中指定更多的参数。
如何使用空占位符
使用.format()方法使用占位符最简单的方法是使用空的{}占位符。
占位符的定义顺序与它们的值需要在 format() 方法中指定的顺序相同。
为了向您展示这是如何工作的,我们将举一个例子来说明如何在 Python 中使用空占位符。
空占位符示例
在这个例子中,我们将从一个名为exampleString的变量开始。
这个变量将存储一个包含 “我的名字是{},我是{}”的字符串。
在这个字符串中,我们将使用format()方法插入单词 “PiMyLifeUp “和数字5。
exampleString = "My name is {}, and I am {}"
exampleString.format("PiMyLifeUp", 5)
print(exampleString)
从这段代码中,应该可以看到下面的结果。
My name is PiMyLifeUp, and I am 5
使用这个,可以知道占位符是按照传递进来的顺序被替换的。
因此,如果翻转参数顺序,最终会得到以下字符串。
exampleString = "My name is {}, and I am {}"
exampleString.format(5, "PiMyLifeUp")
My name is 5, and I am PiMyLifeUp
Python中的编号占位符
在 Python 中,还可以给每个占位符编号。通过给它一个数字,可以决定你指定它的值的顺序。
可以将一个数字放在两个大括号({0})之间来指定。
"My age is {1}, my name is {0}".format("PiMyLifeUp", 5)
在指定位置时一定要记住,是从0开始计数,而不是1。
当格式化不同的字符串时,使用编号的占位符是很有用的,因为占位符的位置是不同的。
如果想在同一字符串中的多个地方使用该占位符的值,这也很有帮助。
使用编号占位符的例子
在这个例子中,通过展示将name format()参数传入的两个不同的字符串来告诉你数字占位符是如何工作的。
为了说明这一点,要用字符串 “My age is {0}, my name is {1}
“和字符串 “My name is {1}, my age is {0}
“。
exampleString1 = "My age is {0}, my name is {1}"
exampleString2 = "My name is {1}, my age is {0}"
print(exampleString1.format(5, "PiMyLifeUp"))
print(exampleString2.format(5, "PiMyLifeUp"))
如果你在Python中运行这段代码,你应该最终得到一个像下面这样的结果。
My age is 5, my name is PiMyLifeUp
My name is PiMyLifeUp, my age is 5.
正如你所看到的,尽管参数的使用顺序相同,但由于使用了编号的占位符,两个字符串仍然被插入了正确的位置。
使用命名占位符
第三种也是最后一种在Python中使用占位符的方式是使用命名占位符。
这就需要您在大括号内指定一个名称({ NAME })。
指定的这个名称是至关重要的,因为当在format()方法中设置它的值时需要使用它。
对于每个占位符,你需要使用占位符的名称,然后是等号(=),然后是你想要分配给它的值。
"Welcome to {website}".format(website="PiMyLifeUp.com")
你可能想使用这种方法的最大原因之一是,如果使用得当,它可以极大地提高代码的可读性。
当你在格式化一个包含占位符的字符串时,它将变得不言而喻,什么将被放置在那个位置上。
使用命名占位符的例子
下面我们就来给大家介绍一下如何利用命名占位符。
在这个例子中,我们将使用字符串 “你好{名字},欢迎来到{网站}”
一目了然,可以看到这个字符串有两个命名的占位符,名字和网站。
exampleString = "Hello {name}, welcome to {website}"
print(exampleString.format(name="World", website="PiMyLifeUp.com"))
使用上面的代码,我们在名称中插入文本 “World”,在网站中插入字符串 “PiMyLifeUp.com”。
如果你在Python中运行上面的代码,你应该最终得到以下结果。
Hello World, welcome to PiMyLifeUp.com
操作字符串的方法
在本节中,我们将介绍一些你可以用来操作字符串的各种方法。
你可以通过使用变量上的点(.)和方法名来使用这些方法。
使用 strip() 去除空白
strip()方法用于删除字符串开头或结尾的任何空格。
stringVariableName = stringVariableName.strip()
使用这个方法,你可以把一个字符串,如 “PiMyLifeUP字符串示例”,并把它变成 “PiMyLifeUp字符串示例”。
这个方法对于处理那些可能已经添加了额外空格的字符串很有用。
使用 strip() 方法的例子
下面我们将向大家展示一个如何使用strip()函数的例子。
我们将定义一个名为exampleString的字符串,其值为” Hello I Have Unneeded Whitespace “。
正如你所看到的,我们在字符串的开头和结尾添加了两个我们不想要的空格。
exampleString = " Hello I have Unneeded Whitespace "
print(exampleString.strip())
通过利用strip方法,我们可以输出以下字符串。
Hello I have Unneeded Whitespace
你会发现,字符串两端的两块空白都被剥离了。
使用 lower() 将一个字符串转换为小写。
lower()方法可以用来将一个字符串完全转换为小写。
stringVariableName = stringVariableName.lower()
通过使用这种方法,你可以将一个字符串从大写转换成小写。
例如,字符串 “PiMyLifeUP “将变成 “pimyifeup”。
使用 lower() 方法的例子
为了向你展示它是如何工作的,我们将在我们的变量 exampleString 上使用 lower() 方法,其值为 “MiXeD CaSE StRiNG ExAMPLE”。
exampleString = "MiXeD CaSE StRiNG ExAMPLE"
print(exampleString.lower())
在运行这个Python代码片段后,你应该得到一个结果,就像我们下面的一样。
mixed case string example
你会看到每个字母都被转换成了小写。
使用 upper() 将一个字符串转换为大写字母
upper()方法与lower()方法相反,它将所有字母转换为对应的大写字母。
stringVariableName = stringVariableName.upper()
使用这个方法,你可以转换一个字符串,使每个字母都是大写。
例如,我们可以通过这个方法轻松地将字符串 “pimylifeup “改为 “PIMYLIFEUP”。
upper()方法的使用实例
利用upper()方法是一个合理直接的过程。
在这个例子中,我们将向您展示如何使用该方法将我们的示例字符串从 “所有小写示例字符串 “转换为大写。
exampleString = "all lower case example string"
print(exampleString.upper())
通过运行上面的代码,你应该看到以下结果。现在每个字母都应该是大写的。
ALL LOWER CASE EXAMPLE STRING
使用replace()在一个字符串中进行替换。
如果你想替换一个字符串中的元素,你可以使用replace()方法。
该方法需要三个不同的参数。前两个是必需的,第三个是可选的。
前两个必要的参数要求你指定你要找到的文本,以及你要替换的文本。
第三个参数允许你指定要替换多少个出现。
stringVariableName = stringVariableName.replace("FIND", "REPLACE", [OCCURRENCES])
利用这个方法,你可以把 “二二三四五 “这样的字符串,用 “一 “代替第一次出现的 “二”。
使用replace()方法的例子
下面我们将给出两个不同的例子来说明如何使用replace()方法。
例1
在这第一个例子中,我们要使用 “二二三四五 “的示例字符串值,并将 “二 “字替换为 “一 “字。
我们通过使用replace()方法,用 “二 “来解析第一个参数,用 “一 “来解析第二个参数。
所以 “二 “是我们要找的值,”一 “是我们要替换的字符串
exampleString = "Two Two Three Four Five"
print(exampleString.replace("Two", "One"))
使用这段代码,你应该最终会看到下面的结果。
One One Three Four Five
从上面的结果可以看出,所有出现的Two都被替换成了One。
例二
在这个例子中,我们将采用与上面相同的示例字符串,但这次只替换一个 “Two “的出现。
我们通过利用第三个可选参数来实现。有了这个参数.我们将把数字1传入。
exampleString = "Two Two Three Four Five"
print(exampleString.replace("Two", "One", 1))
从这段代码中,你应该可以看到打印出以下文字。
One Two Three Four Five
如你所见,”二 “的出现只有一个被替换了,字符串中还剩下第二个。
使用split()方法拆分一个字符串。
split()方法可以把一个字符串分割成一个列表。
这个方法有一个可选的参数,让你定义你想使用的分隔符。默认情况下,元素之间使用任何空格作为分隔符。
stringVariableName = stringVariableName.split([SEPERATOR])
例如,使用这种方法,你可以把文本 “一、二、三、四 “分割成一个列表,像这样[“一”、”二”、”三”、”四”]。
使用 split() 方法的例子
下面我们将给出两个使用split()方法的例子,一个是没有使用参数,一个是定义了分隔符参数。
例1
通过这个例子,我们将把下面的字符串 “一二三四 “转换成一个列表。
由于每个元素只用空格隔开,我们可以使用split()方法,而不需要使用可选参数。
exampleString = "one two three four"
print(exampleString.split())
从这段代码中,你应该看到打印出以下列表。
['one', 'two', 'three', 'four']
例二
现在让我们来看看另一个字符串,这一次,它使用逗号(,)来分隔每个元素,而不是空格。
本例字符串设置为 “一、二、三、四”。
exampleString = "one,two,three,four"
print(exampleString.split(','))
使用这个示例代码片段,你应该看到以下结果。
['one', 'two', 'three', 'four']
希望您现在对如何在Python编程语言中处理字符串有了一个了解
如果你发现本指南的问题或有什么建议,欢迎在下方留言。
欢迎转载,请留下出处链接:Labno3 » Python编程基础,如何处理字符串