Python 中有几个与 字符串数据类型相关的内置函数。这些函数让我们能够轻松修改和操作字符串。我们可以将函数视为在代码元素上执行的操作。内置函数是在 Python 编程语言中定义的,并且可以随时供我们使用的函数。
在本教程中,我们将介绍在 Python 3 中使用的几种不同的函数,以处理字符串。
函数 str.upper()
和 str.lower()
将返回一个将原始字符串的所有字母转换为大写或小写字母的字符串。由于字符串是不可变数据类型,返回的字符串将是一个新字符串。字符串中的任何非字母字符都不会更改。
让我们将字符串 Sammy Shark
转换为全部大写:
ss = "Sammy Shark"
print(ss.upper())
SAMMY SHARK
现在,让我们将字符串转换为全部小写:
print(ss.lower())
sammy shark
str.upper()
和 str.lower()
函数使得通过使大小写一致来评估和比较字符串变得更容易。这样,如果用户以全部小写形式写他们的名字,我们仍然可以通过将其与全部大写版本进行比较来确定他们的名字是否在我们的数据库中,例如。
Python 具有一些字符串方法,将计算为 布尔值。当我们为用户创建填写表单时,这些方法非常有用。例如,如果我们要求邮政编码,我们只希望接受数字字符串,但当我们要求姓名时,我们只希望接受字母字符串。
有几种字符串方法将返回布尔值:
方法 | 如果 |
---|---|
str.isalnum() | 字符串仅由字母数字字符组成(没有符号) |
str.isalpha() | 字符串仅由字母字符组成(没有符号) |
str.islower() | 字符串的字母字符全部小写 |
str.isnumeric() | 字符串仅由数字字符组成 |
str.isspace() | 字符串仅由空白字符组成 |
str.istitle() | 字符串是标题形式 |
str.isupper() | 字符串的字母字符全部大写 |
让我们看一下其中几个的实际应用:
number = "5"
letters = "abcdef"
print(number.isnumeric())
print(letters.isnumeric())
True
False
在字符串 5
上使用 str.isnumeric()
方法返回 True
,而在字符串 abcdef
上使用相同的方法返回 False
。
同样,我们可以查询字符串的字母字符是小写、大写还是标题形式。让我们创建一些字符串:
movie = "2001: A SAMMY ODYSSEY"
book = "A Thousand Splendid Sharks"
poem = "sammy lived in a pretty how town"
现在让我们尝试检查标题形式的布尔方法:
print(movie.islower())
print(movie.isupper())
print(book.istitle())
print(book.isupper())
print(poem.istitle())
print(poem.islower())
现在我们可以运行这些小程序,并得到以下输出:
False
True
True
False
False
True
检查字符是小写、大写还是标题形式可以帮助我们适当地对数据进行排序,并为我们提供检查和根据需要修改字符串的标准化数据的机会。
当我们希望检查用户输入是否符合给定参数时,布尔字符串方法非常有用。
字符串函数 len()
返回字符串中的字符数。例如,当您需要强制执行最小或最大密码长度时,或将较大的字符串截断以在使用缩写时保持在某些限制范围内时,此方法非常有用。
为了演示这个方法,我们将找到一个长句子字符串的长度:
open_source = "Sammy contributes to open source."
print(len(open_source))
33
我们将变量 open_source
设置为字符串 "Sammy contributes to open source."
,然后我们使用 len()
函数传递了该变量,即 len(open_source)
。然后,我们将该方法传递到 print()
方法中,以便我们可以从我们的程序中在屏幕上生成输出。
请记住,len()
函数将计算由单引号或双引号括起的任何字符——包括字母、数字、空格字符和符号。
、split()
和 replace()
方法
str.join()
、str.split()
和 str.replace()
方法是在 Python 中操作字符串的另外几种方式。
str.join()
方法将连接两个字符串,但以一种将一个字符串通过另一个字符串传递的方式。
让我们创建一个字符串:
balloon = "Sammy has a balloon."
现在,让我们使用 str.join()
方法向该字符串添加空格,我们可以这样做:
" ".join(balloon)
如果我们将其打印出来:
print(" ".join(balloon))
我们将注意到在返回的新字符串中,在第一个字符串中间添加了空格:
[secondary_label 输出]
S a m m y h a s a b a l l o o n .
我们还可以使用 str.join()
方法返回一个与原始字符串相反的字符串:
print("".join(reversed(balloon)))
.noollab a sah ymmaS
由于我们不想将另一个字符串的任何部分添加到第一个字符串,因此我们保持引号紧密相连,中间没有空格。
str.join()
方法还可以用于将字符串列表组合成一个新的单一字符串。
让我们从一个字符串列表创建一个以逗号分隔的字符串:
print(",".join(["sharks", "crustaceans", "plankton"]))
sharks,crustaceans,plankton
如果我们想在新字符串中的字符串值之间添加逗号和空格,我们可以使用空格后的逗号重写我们的表达式:", ".join(["sharks", "crustaceans", "plankton"])
。
与我们可以将字符串连接在一起类似,我们也可以拆分字符串。为此,我们将使用 str.split()
方法:
print(balloon.split())
['Sammy', 'has', 'a', 'balloon.']
如果未提供其他参数,则 str.split()
方法将返回由空格分隔的字符串列表。
我们还可以使用 str.split()
来删除原始字符串的某些部分。例如,让我们从字符串中删除字母 a
:
print(balloon.split("a"))
['S', 'mmy h', 's ', ' b', 'lloon.']
现在字母 a
已被删除,并且字符串已在每个字母 a
的位置分隔,保留了空格。
str.replace()
方法可以接受原始字符串并返回一个带有替换的更新字符串。
比方说,Sammy 失去了他的气球。由于 Sammy 不再拥有这个气球,我们将从原始字符串 balloon
中的子字符串 "has"
更改为新字符串中的子字符串 "had"
:
print(balloon.replace("has","had"))
在括号中,第一个子字符串是我们要替换的内容,第二个子字符串是我们要用来替换第一个子字符串的内容。我们的输出将如下所示:
Sammy had a balloon.
使用字符串方法 str.join()
、str.split()
和 str.replace()
将为您提供更多控制权,以在 Python 中操作字符串。
本教程介绍了在 Python 程序中使用的字符串数据类型的一些常见内置方法,用于处理和操作字符串。