Python 字符串
Python 字符串
到目前为止,我们已经讨论了 Python 中作为标准数据类型的数字。在本节教程中,我们将讨论 Python 中最流行的数据类型,即字符串。
Python 字符串是由单引号、双引号或三引号括起来的字符的集合。计算机不理解字符;在内部,它将被操纵的字符存储为 0 和 1 的组合。
每个字符都用 ASCII 或 Unicode 字符编码。所以我们可以说 Python 字符串也叫做 Unicode 字符的集合。
在 Python 中,字符串可以通过在引号中包含字符或字符序列来创建。Python 允许我们使用单引号、双引号或三引号来创建字符串。
考虑下面 Python 中的例子来创建一个字符串。
语法:
|
这里,如果我们使用 Python 脚本检查变量字符串的类型
|
在 Python 中,字符串被视为字符序列,这意味着 Python 不支持字符数据类型;相反,写为“p”的单个字符被视为长度为 1 的字符串。
用 Python 创建字符串
我们可以通过用单引号或双引号将字符括起来来创建字符串。Python 还提供了三重引号来表示字符串,但它通常用于多行字符串或文档字符串。
|
输出:
Hello Python |
字符串索引和拆分
像其他语言一样,Python 字符串的索引从 0 开始。例如,字符串“HELLO”的索引如下图所示。
考虑以下示例:
|
输出:
H |
如 Python 所示,切片运算符[]用于访问字符串的各个字符。但是,我们可以使用 Python 中的:(冒号)运算符从给定的字符串中访问子字符串。考虑下面的例子。
在这里,我们必须注意到切片运算符中给出的上限总是排他的,即如果给定了 str = 'HELLO ',那么 str[1:3]将始终包括 str[1] = 'E ',str[2] = 'L '等。
考虑以下示例:
|
输出:
JAVATPOINT |
我们可以在字符串中进行负切片;它从最右边的字符开始,表示为-1。第二个最右边的索引表示-2,依此类推。请看下图。
考虑以下示例
|
输出:
T |
重新分配字符串
更新字符串的内容就像将其分配给新字符串一样简单。字符串对象不支持项赋值,即字符串只能用新字符串替换,因为它的内容不能被部分替换。字符串在 Python 中是不可变的。
考虑下面的例子。
例 1
|
输出:
Traceback (most recent call last): |
然而,在示例 1 中,字符串 str 可以被完全分配给新的内容,如以下示例中所指定的。
例 2
|
输出:
HELLO |
删除字符串
我们知道字符串是不可变的。我们不能删除字符串中的字符。但是我们可以使用 del 关键字删除整个字符串。
|
输出:
TypeError: 'str' object doesn't support item deletion |
现在我们删除整个字符串。
|
输出:
NameError: name 'str1' is not defined |
字符串运算符
操作符 | 描述 |
---|---|
+ | 它被称为连接运算符,用于连接运算符两侧的字符串。 |
* | 它被称为重复算子。它将同一字符串的多个副本连接起来。 |
[] | 它被称为切片算子。它用于访问特定字符串的子字符串。 |
[:] | 它被称为范围切片运算符。它用于访问指定范围内的字符。 |
in | 它被称为成员运算符。如果指定的字符串中存在特定的子字符串,则返回。 |
not in | 它也是一个成员操作符,其作用与 in 完全相反。如果指定的字符串中不存在特定的子字符串,则返回 true。 |
r/R | 它用于指定原始字符串。原始字符串用于我们需要打印转义字符(如“C://python”)的实际含义的情况。要将任何字符串定义为原始字符串,字符 R 或 R 后面是字符串。 |
% | 它用于执行字符串格式化。它利用 C 编程中使用的格式说明符,如%d 或%f,在 python 中映射它们的值。我们将讨论如何在 python 中进行格式化。 |
例子
考虑下面的例子来理解 Python 操作符的真正用途。
|
输出:
HelloHelloHello |
Python 字符串格式
换码顺序
让我们假设我们需要把文本写成——他们说,“你好,发生什么事了?”-给定的语句可以用单引号或双引号写出,但它会引发语法错误,因为它同时包含单引号和双引号。
例子
考虑下面的例子来理解 Python 操作符的真正用途。
|
输出:
SyntaxError: invalid syntax |
我们可以使用三重引号来解决这个问题,但是 Python 提供了转义序列。
反斜杠(/)符号表示转义序列。反斜杠后面可以跟一个特殊的字符,它有不同的解释。字符串中的单引号必须转义。我们可以应用与双引号中相同的内容。
示例-
|
输出:
They said, "What's there?" |
转义序列列表如下所示:
以下是转义序列的简单示例。
|
输出:
C:\Users\DEVANSH SHARMA\Python32\Lib |
我们可以使用原始字符串忽略给定字符串的转义序列。我们可以通过在字符串前面写 r 或 R 来实现。考虑下面的例子。
|
输出:
C:\\Users\\DEVANSH SHARMA\\Python32 |
format()方法
format() 方法是格式化字符串时最灵活、最有用的方法。大括号{}用作字符串中的占位符,并被**格式()**方法参数替换。让我们看一下给出的一个例子:
|
输出:
Devansh and Abhishek both are the best friend |
使用%运算符的 Python 字符串格式
Python 允许我们使用 C 的 printf 语句中使用的格式说明符。Python 中的格式说明符的处理方式与 c 语言中的相同。但是,Python 提供了一个额外的运算符%,用作格式说明符及其值之间的接口。换句话说,我们可以说它将格式说明符绑定到值。
考虑下面的例子。
|
输出:
Hi I am Integer ... My value is 10 |
Python 字符串函数
Python 提供了各种用于字符串处理的内置函数。许多字符串乐趣
方法 | 描述 |
---|---|
capitalize() | 它将字符串的第一个字符大写。python3 中不推荐使用此函数 |
casefold() | 它返回适合无大小写比较的 s 版本。 |
center(width ,fillchar) | 它返回一个空格填充的字符串,原始字符串以相等数量的左右空格为中心。 |
count(string,begin,end) | 它计算字符串中开始和结束索引之间的子字符串出现的次数。 |
decode(encoding = ‘UTF8’, errors = ‘strict’) | 使用注册用于编码的编解码器解码字符串。 |
encode() | 使用为编码注册的编解码器对 S 进行编码。默认编码为“utf-8”。 |
endswith(suffix ,begin=0,end=len(string)) | 如果字符串在开始和结束之间以给定后缀结束,它将返回一个布尔值。 |
expandtabs(tabsize = 8) | 它将字符串中的制表符定义为多个空格。默认空间值为 8。 |
find(substring ,beginIndex, endIndex) | 它返回在开始索引和结束索引之间找到子字符串的字符串的索引值。 |
format(value) | 它使用传递的值返回 S 的格式化版本。 |
index(subsring, beginIndex, endIndex) | 如果找不到字符串,它将引发异常。它的工作原理与 find()方法相同。 |
isalnum() | 如果字符串中的字符是字母数字,即字母或数字,并且至少有 1 个字符,则返回 true。否则,它返回 false。 |
isalpha() | 如果所有字符都是字母并且至少有一个字符,则返回真,否则返回假。 |
isdiction() | 如果字符串的所有字符都是小数,则返回 true。 |
isdigital() | 如果所有字符都是数字并且至少有一个字符,则返回真,否则返回假。 |
isidentifier() | 如果字符串是有效的标识符,则返回 true。 |
islower()) | 如果字符串的字符是小写,则返回 true,否则返回 false。 |
isnumeric() | 如果字符串只包含数字字符,则返回 true。 |
isprintable() | 如果 s 的所有字符都是可打印的或 s 为空,则返回 true,否则返回 false。 |
isupper() | 如果字符串的字符为大写,则返回 false,否则返回 False。 |
isspace() | 如果字符串的字符是空格,则返回 true,否则返回 false。 |
istitle() | 如果字符串标题正确,则返回 true,否则返回 false。标题字符串的第一个字符是大写的,而其他字符是小写的。 |
isupper() | 如果字符串的所有字符(如果存在)都为真,则返回真,否则返回假。 |
join(seq) | 它合并给定序列的字符串表示。 |
len(string) | 它返回字符串的长度。 |
ljust(width[,fillchar]) | 它返回空格填充的字符串,原始字符串左对齐给定的宽度。 |
lower() | 它将字符串的所有字符转换为小写。 |
lstrip() | 它删除字符串的所有前导空格,也可用于删除前导中的特定字符。 |
partition() | 它在 S 中搜索分隔符 sep,并返回它之前的部分、分隔符本身和它之后的部分。如果找不到分隔符,返回 S 和两个空字符串。 |
maketrans() | 它返回一个用于翻译函数的翻译表。 |
replace(old,new[,count]) | 它用新的字符序列替换旧的字符序列。如果给定了 max,则 max 字符将被替换。 |
rfind(str,beg=0,end=len(str)) | 它类似于 find,但它以向后的方向遍历字符串。 |
rindex(str,beg=0,end=len(str)) | 它与索引相同,但它以向后的方向遍历字符串。 |
rjust(width,[,fillchar]) | 返回一个空格填充的字符串,其原始字符串右对齐指定的字符数。 |
rstrip() | 它删除字符串的所有尾部空白,也可以用来删除尾部的特定字符。 |
rsplit(sep = none,maxsplit = -1) | 它与 split()相同,但它从向后的方向处理字符串。它返回字符串中的单词列表。如果未指定分隔符,则字符串会根据空格进行拆分。 |
split(str,num=string.count(str)) | 根据分隔符字符串拆分字符串。如果未提供分隔符,字符串将根据空格进行拆分。它返回与分隔符连接的子字符串列表。 |
splitlines(num=string.count(‘\n’)) | 它返回删除换行符后每行的字符串列表。 |
startswith(str,beg=0,end=len(str)) | 如果字符串从开始和结束之间的给定字符串开始,它将返回一个布尔值。 |
strip([chars]) | 它用于对字符串执行 lstrip()和 rstrip()。 |
swapcase() | 它反转字符串中所有字符的大小写。 |
title() | 它用于将字符串转换为标题大小写,即字符串meereut将转换为 meereut。 |
translate(table,deletechars = ‘’) | 它根据函数中传递的转换表来转换字符串。 |
upper() | 它将字符串的所有字符转换为大写。 |
zfill(width) | 返回用零填充的原始字符串,总宽度为个字符;zfill()用于数字,保留任何给定的符号(小于零)。 |
rpartition() |