Python 基础数据类型详解
Python 基础数据类型包括数值、字符串、列表、元组、字典和集合。变量赋值无需声明类型,内存自动分配。数值类型不可变,支持 int、float、complex。字符串支持索引切片与拼接。列表可变,支持增删改查;元组只读,适合固定数据。字典通过键值对存储数据,支持快速查找。集合用于去重和集合运算。内置函数可用于类型转换。掌握这些类型及其可变性、有序性等特性是 Python 编程的基础。

Python 基础数据类型包括数值、字符串、列表、元组、字典和集合。变量赋值无需声明类型,内存自动分配。数值类型不可变,支持 int、float、complex。字符串支持索引切片与拼接。列表可变,支持增删改查;元组只读,适合固定数据。字典通过键值对存储数据,支持快速查找。集合用于去重和集合运算。内置函数可用于类型转换。掌握这些类型及其可变性、有序性等特性是 Python 编程的基础。

Python 中的变量是内存中存储值的引用。在创建变量时,解释器会在内存中开辟空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数、小数或字符。
Python 是动态类型语言,变量不需要显式声明类型,赋值时自动推断。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号 = 用来给变量赋值。等号左边是一个变量名,右边是存储在变量中的值。
num = 100 # 整型变量
weight = 100.0 # 浮点型变量
name = 'demo' # 字符串变量
print(num)
print(weight)
print(name)
执行以上程序会输出如下结果:
100
100.0
demo
Python 允许同时为多个变量赋值。
链式赋值:
a = b = c = 1
三个变量被分配到相同的内存空间上(对于不可变对象)。
序列解包赋值:
a, b, c = 1, 2, 'demo'
两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 'demo' 分配给变量 c。
Python 定义了一些标准类型,用于存储各种类型的数据。最常用的包括:
数值数据类型用于存储数值。它们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时,Number 对象就会被创建:
num1 = 1
num2 = 10
可以使用 del 语句删除对象的引用:
del num1
# 或者删除多个
# del num_a, num_b
Python 支持四种不同的数字类型:
| 类型 | 描述 | 示例 |
|---|---|---|
| int | 有符号整型 | 10, -786, 0x260 |
| float | 浮点型 | 0.0, 15.20, 32.3e+18 |
| complex | 复数 | 3.14j, 9.322e-36j |
| bool | 布尔型 | True, False |
数值运算示例:
a = 10 + 5 # 加法
b = 10 * 5 # 乘法
c = 10 / 3 # 除法 (结果为浮点数)
d = 10 // 3 # 整除
e = 10 % 3 # 取余
f = 2 ** 3 # 幂运算
字符串是由数字、字母、下划线组成的一串字符。它是编程语言中表示文本的数据类型。
Python 的字串列表有 2 种取值顺序:
使用 [头下标:尾下标] 来截取相应的字符串,包含头下标但不包含尾下标。
s = 'Hello Demo'
print(s[0]) # H
print(s[6:8]) # De
print(s[:3]) # Hel
print(s[-1]) # o
可以使用加号 + 对字符串进行连接,使用星号 * 对字符串进行重复操作。
str_val = 'Hello Demo!'
print(str_val) # 输出完整字符串
print(str_val * 2) # 输出字符串两次
print(str_val + ' World') # 输出连接的字符串
len(): 获取字符串长度upper(), lower(): 大小写转换split(): 分割字符串join(): 连接字符串replace(): 替换子串列表是 Python 中使用最频繁的数据类型,支持字符、数字、字符串甚至可以包含列表(即嵌套)。列表用 [] 标识,是 Python 最通用的复合数据类型。
列表是可变的,可以修改其中的元素。
list1 = ['demo', 786, 2.23, 'show', 70.2]
tinylist = [123, 'show']
print(list1) # 输出完整列表
print(list1[0]) # 输出第一个元素
print(list1[1:3]) # 输出第二个至第三个元素
print(list1[2:]) # 输出从第三个开始至末尾的所有元素
print(tinylist * 2) # 输出列表两次
print(list1 + tinylist) # 打印组合的列表
append(x): 在末尾添加元素extend(L): 扩展列表insert(i, x): 在指定位置插入remove(x): 移除第一个匹配项pop([i]): 移除并返回指定位置元素sort(): 排序reverse(): 反转元组类似于列表,但用 () 标识。内部元素用逗号隔开。元组是不可变的,相当于只读列表,不能二次赋值修改内容。
tuple1 = ('demo', 786, 2.23, 'show', 70.2)
tinytuple = (123, 'show')
print(tuple1) # 输出完整元组
print(tuple1[0]) # 输出第一个元素
print(tuple1[1:3]) # 输出切片
print(tinytuple * 2) # 输出元组两次
print(tuple1 + tinytuple)# 打印组合的元组
尝试修改元组元素会报错:
# tuple1[2] = 100 # TypeError: 'tuple' object does not support item assignment
list1 = ['demo', 345, 2.23]
list1[2] = 100 # 合法,列表可修改
字典是除列表以外 Python 中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合(Python 3.7+ 保持插入顺序)。
区别在于:字典当中的元素是通过键 (key) 来存取的,而不是通过偏移存取。键必须是唯一的且不可变。
字典用 { } 标识。由索引 (key) 和它对应的值 value 组成。
dict1 = {}
dict1['one'] = "This is one"
dict1[2] = "This is two"
tinydict = {'name': 'demo', 'code': 3456, 'dept': 'AI'}
print(dict1['one']) # 输出键为'one' 的值
print(dict1[2]) # 输出键为 2 的值
print(tinydict) # 输出完整的字典
print(tinydict.keys()) # 输出所有键
print(tinydict.values()) # 输出所有值
print(tinydict.get('name')) # 安全获取值
keys(): 获取所有键values(): 获取所有值items(): 获取所有键值对update(): 更新字典pop(key): 删除指定键集合是另一个重要的数据类型,由不同元素组成。集合是无序且不重复的元素集。
myset = {1, 2, 3, 3, 4}
print(myset) # 输出 {1, 2, 3, 4},重复元素被去除
# 集合运算
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b) # 并集 {1, 2, 3, 4, 5}
print(a & b) # 交集 {3}
print(a - b) # 差集 {1, 2}
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,只需要将数据类型作为函数名即可。以下内置函数可以执行数据类型之间的转换:
| 函数 | 描述 |
|---|---|
int(x) | 将 x 转换为一个整数 |
float(x) | 将 x 转换到一个浮点数 |
str(x) | 将对象 x 转换为字符串 |
list(s) | 将序列 s 转换为一个列表 |
tuple(s) | 将序列 s 转换为一个元组 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典 |
bool(x) | 转换为布尔值 |
转换示例:
val_str = '123'
val_int = int(val_str) # 123
val_float = float(val_str) # 123.0
val_list = list(val_str) # ['1', '2', '3']
注意:如果转换失败(如将非数字字符串转为 int),会抛出异常,建议配合 try-except 使用。
| 类型 | 标识符 | 可变性 | 有序性 | 典型用途 |
|---|---|---|---|---|
| List | [] | 可变 | 有序 | 通用数据存储 |
| Tuple | () | 不可变 | 有序 | 固定配置、函数返回值 |
| Dict | {} | 可变 | 有序 (3.7+) | 键值映射、快速查找 |
| Set | {} | 可变 | 无序 | 去重、集合运算 |
| Str | '' | 不可变 | 有序 | 文本处理 |
| Int/Float | - | 不可变 | - | 数值计算 |
掌握这些基础数据类型及其特性,是编写高效、健壮的 Python 代码的前提。在实际开发中,应根据数据是否需要修改、是否需要快速查找等需求选择合适的容器类型。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online