📜  字符串如何在 python 3 内部存储 - Python (1)

📅  最后修改于: 2023-12-03 14:53:26.737000             🧑  作者: Mango

字符串如何在 Python 3 内部存储

在 Python 3 中,字符串被视为一种序列类型,它被存储为 Unicode 字符序列。Python 3 中的字符串是不可变的,这意味着一旦被创建,就不可以被更改。以下是一些关于 Python 3 字符串内部存储的详细信息:

字符串编码

Python 3 采用 Unicode 编码,这种编码可以包含来自几乎所有国家的所有字符。Unicode 中的每个字符都有一个唯一的编号,也就是所谓的码位。Python 3 使用 16 位 Unicode 字符表示(UTF-16 编码),这意味着每个字符都占用两个字节的内存。

创建字符串

创建字符串时,Python 3 首先会对输入的 Unicode 字符进行编码,然后将其存储在内存中。在 Python 3 中,可以使用两种方式创建字符串:

  1. 使用单引号或双引号括起来的字符序列,例如:"Hello, world!"

  2. 使用三个单引号或三个双引号括起来的字符序列,可以用于跨越多行输入,例如:'''This is a multi-line string.'''

字符串索引

在 Python 3 中,可以通过索引来访问字符串中的单个字符,如下所示:

my_string = 'Hello, world!'
print(my_string[0])  # Output: H

请注意,Python 3 中的字符串索引是从零开始的,这意味着第一个字符的索引为 0。

字符串切片

Python 3 允许使用切片操作从字符串中获取子字符串,在以下示例中:

my_string = 'Hello, world!'
print(my_string[0:5])  # Output: Hello

切片的语法为:string[start:end:step]。开始位置是要选取的子字符串的第一个字符的索引,结束位置是要选取的子字符串的下一个字符的索引。步长是选取索引之间字符的跨度,默认为 1。

字符串连接

在 Python 3 中,可以使用加号运算符将两个字符串连接成一个字符串,例如:

first_name = 'John'
last_name = 'Doe'
full_name = first_name + ' ' + last_name
print(full_name)  # Output: John Doe
字符串格式化

字符串格式化是一种用于创建字符串的技术,可以将变量值插入到字符串中。Python 3 支持几种不同的字符串格式化技术,其中最常用的是使用 f-strings。在以下示例中:

name = 'John'
age = 35
print(f'My name is {name} and I am {age} years old.')  # Output: My name is John and I am 35 years old.
总结

Python 3 字符串是存储为 Unicode 字符序列的不可变序列类型。字符串可以使用单引号、双引号或三个引号创建。可以使用索引和切片操作访问和提取字符串中的字符。另外,可以使用加号运算符连接两个字符串,也可以使用 f-strings 进行字符串格式化。