# 知识库

# 2.1.3 Python基本数据类型

Python 中，变量是可以改变的操作数，用变量名标识；常量是保持不变的操作数，即立即数。通过给变量名赋值来创建变量，例如 `a = 3`、`b = 'Welcome to China'`。不仅可以改变变量的值（如再令 `a = 4`），还可以改变它的类型（如再令 `a = [2, 5, 7]`）。也可以同时给多个变量赋值：`a, b, c = 2.3, 3.5, 6.7`。变量名只能包含字母、数字和下划线，不能以数字开头，区分大小写，且不能使用保留关键字。命名没有强制禁止使用内置函数名，但若执行 `list = [3, 4, 5]` 后再写 `list('abc')`，会报 `TypeError: 'list' object is not callable`，因为此时 `list` 已是列表而不再是内置函数。关键字 `del` 用于删除对象，删除后访问会引发 `NameError`。

基本数据类型用于存储单个值，包括整型（如 213、1701）、浮点型（如 3.14、78.56）、复数（如 `2+3j`、`10.2+6.7j`）、布尔值（仅 `True` 和 `False`）和字符串。字符串必须用一对界定符号：一对单引号或双引号生成单行字符串，如 `'广东'`、`"广州"`；一对三单引号或三双引号可生成多行字符串。三引号也可表示注释：单独出现、不赋给变量时起注释作用，赋给变量或参与运算时才是多行字符串。无法直接写出或具有特殊含义的字符用转义字符表示，以反斜杠 `\` 开头，例如 `"Hello, Tom!\nThis is a new hotel."` 输出时会在感叹号后换行。在字符串前加 `r` 或 `R` 表示其中字符都不转义，因此 `r'D:\test\exer'` 才能表示合法的 Windows 路径。

字符串是不可变的：一旦创建，内容无法被修改，也没有增加或删除元素的方法；任何“修改”都会生成新的字符串对象。常用成员方法中，`format()` 用花括号占位符插入变量，可按从左到右顺序对应，也可用从 0 开始的位置序号指定对应关系，实数还可指定小数位数，如 `"Pi保留3位小数是: {:.3f}".format(3.141592653)` 得到 `'Pi保留3位小数是: 3.142'`；`find()` 返回子串首次出现的索引，找不到则返回 `-1`；`split()` 按参数指定的分隔符把字符串切成列表，省略参数则按空白分割；`strip()` 删除开头和结尾的空白字符；`join()` 用调用它的字符串连接可迭代对象中的字符串元素，如 `'+'.join(['语文', '数学', '英语'])` 得到 `'语文+数学+英语'`。常见坑包括：变量名以数字开头、覆盖 `list` 等内置名、路径中 `\t` 被当成制表符，以及试图原地修改字符串。

## 关键要点
- 变量是可以改变的操作数；常量是保持不变的操作数（立即数）。
- 通过赋值创建变量；值可变，类型也可变；支持 `a, b, c = 2.3, 3.5, 6.7` 同时赋值。
- 变量名只能含字母、数字、下划线，不能以数字开头，区分大小写，不能用保留关键字。
- 可用内置函数名作变量名，但此后该名字不再指向内置函数；`del` 删除对象后访问会引发 `NameError`。
- 基本数据类型用于存储单个值：整型、浮点型、复数、布尔值（`True`/`False`）、字符串。
- 字符串界定符：单引号、双引号（单行）；三单引号、三双引号（多行，也可作注释）。
- 转义字符以 `\` 开头；前缀 `r` 或 `R` 表示原始字符串，不转义。
- 字符串不可变；常用方法：`format()`、`find()`、`split()`、`strip()`、`join()`。

---
