怡然自得txt今天我们来学习字符串数据类型相关知识,将讨论如何声明字符串数据类型,字符串数据类型与 ASCII 表的关系,字符串数据类型的属性,以及一些重要的字符串方法和操作,超级干货,不容错过!
字符串是包含一系列字符的对象。字符是长度为 1 的字符串。在 Python 中,单个字符也是字符串。但是比较有意思的是,Python 编程语言中是没有字符数据类型的,不过在 C、Kotlin 和 Java 等其他编程语言中是存在字符数据类型的
我们可以使用单引号、双引号、三引号或 str 函数来声明 Python 字符串。下面的代码片段展示了如何在 Python 中声明一个字符串:
在 Python 中获取字符串的另一种方法是使用 input 函数。input 函数允许我们使用键盘将输入的值插入到程序中。插入的值被读取为字符串,但我们可以将它们转换为其他数据类型:
我们使用 type 函数来确定 Python 中对象的数据类型,它返回对象的类。当对象是字符串时,它返回 str 类。同样,当对象是字典、整数、浮点数、元组或布尔值时,它分别返回 dict、int、float、tuple、bool 类。现在让我们使用 type 函数来确定前面代码片段中声明的变量的数据类型:
美国信息交换标准代码 (ASCII) 旨在帮助我们将字符或文本映射到数字,因为数字集比文本更容易存储在计算机内存中。ASCII 主要用英语对 128 个字符进行编码,用于处理计算机和编程中的信息。ASCII 编码的英文字符包括小写字母(a-z)、大写字母(A-Z)、数字(0-9)以及标点符号等符号
ord 函数将长度为 1(一个字符)的 Python 字符串转换为其在 ASCII 表上的十进制表示,而 chr 函数将十进制表示转换回字符串。例如:
在上面的代码片段中,我们遍历字符串 ABCDE 和 01234,并将每个字符转换为它们在 ASCII 表中的十进制表示。我们还可以使用 chr 函数执行反向操作,从而将 ASCII 表上的十进制数字转换为它们的 Python 字符串字符。例如:
在 ASCII 表中,上述程序输出中的字符串字符映射到它们各自的十进制数
零索引:字符串中的第一个元素的索引为零,而最后一个元素的索引为 len(string) - 1。例如:
不变性:这意味着我们不能更新字符串中的字符。例如我们不能从字符串中删除一个元素或尝试在其任何索引位置分配一个新元素。如果我们尝试更新字符串,它会抛出 TypeError:
但是我们可以将字符串重新分配给 immutable_string 变量,不过我们应该注意它们不是同一个字符串,因为它们不指向内存中的同一个对象。Python 不会更新旧的字符串对象;它创建了一个新的,正如我们通过 ids 看到的那样:
连接:将两个或多个字符串连接在一起以获得带有 + 符号的新字符串。例如:
索引和切片:我们已经确定字符串是从零开始索引的,我们可以使用其索引值访问字符串中的任何元素。我们还可以通过在两个索引值之间进行切片来获取字符串的子集。例如:
str.split(sep=None, maxsplit=-1):字符串拆分方法包含两个属性:sep 和 maxsplit。当使用其默认值调用此方法时,它会在任何有空格的地方拆分字符串。此方法返回字符串列表:
我们可以看到字符串没有很好地拆分,因为拆分的字符串包含 , 。我们可以使用 sep=, 在有 , 的地方进行拆分:
这比之前的拆分要好,但是我们可以在一些拆分字符串之前看到空格。可以使用 (sep=, ) 删除它:
现在字符串被很好地分割了。有时我们不想分割最大次数,我们可以使用 maxsplit 属性来指定我们打算拆分的次数:
str.splitlines(keepends=False):有时我们想处理一个在边界处具有不同换行符(\n、\n\n、\r、\r\n)的语料库。我们要拆分成句子,而不是单个单词。可以使用 splitline 方法来执行此操作。当 keepends=True 时,文本中包含换行符;否则它们被排除在外
str.strip([chars]):我们使用 strip 方法从字符串的两侧删除尾随空格或字符。例如:
在上面的代码片段中,我们使用了 lstrip 和 rstrip 方法,它们分别从字符串的左侧和右侧删除尾随空格或字符。我们还使用了 capitalize 方法,它将字符串转换为句子大小写str.zfill(width):zfill 方法用 0 前缀填充字符串以获得指定的宽度。例如:
str.isalpha:如果字符串中的所有字符都是字母,该方法返回True;否则返回 False:
如果字符串中的所有字符都是小写,str.islower返回 True;如果字符串中的所有字符都是大写,str.isupper返回 True;如果每个单词的首字母大写,str.istitle返回 True:
当使用关系运算符(、、== 等)比较两个字符串时,两个字符串的元素按其 ASCII 十进制数字逐个索引进行比较。例如:
在这两种情况下,输出都是 False。关系运算符首先比较两个字符串的索引 0 上元素的 ASCII 十进制数。由于 b 大于 a,因此返回 False;在这种情况下,其他元素的 ASCII 十进制数字和字符串的长度无关紧要
当字符串长度相同时,它比较从索引 0 开始的每个元素的 ASCII 十进制数,直到找到具有不同 ASCII 十进制数的元素。例如:
f-string 和 str.format 方法用于格式化字符串。两者都使用大括号 {} 占位符。例如:
f-strings 更具可读性,并且它们比 str.format 方法实现得更快。因此,f-string 是字符串格式化的首选方法
撇号 () 在 Python 中表示一个字符串。为了让 Python 知道我们不是在处理字符串,我们必须使用 Python 转义字符 。因此撇号在 Python 中表示为 。与处理撇号不同,Python 中有很多处理引号的方法。它们包括以下内容:
字符串作为编程语言当中最为常见的数据类型,熟练而灵活的掌握其各种属性和方法,实在是太重要了,小伙伴们千万要实时温习,处处留心哦!
主页君日常还会在个人微信分享Python相关工具、资源和精选技术文章,不定期分享一些有意思的活动、岗位内推以及如何用技术做业余项目
|