Python编程基础,如何处理字符串

通过本指南了解Python编程语言中如何处理字符串。

String-in-Python-Thumbnail.png

在任何编程语言中,字符串都是一个非常重要的概念,要学会如何处理,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编程语言中处理字符串有了一个了解

如果你发现本指南的问题或有什么建议,欢迎在下方留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Python编程基础,如何处理字符串

赞 (4)

评论

7+9=