在之前的文章中,我们探讨了变量、常量和表达式的基本概念。简单来说,变量就像是存放数据的“标签”。然而,仅有标签还不够——数据本身还具备各自的格式、运算规则和存储特性,这些特性正是我们常说的数据类型。

Python提供了一套完整的内置基础数据类型,无需额外安装模块即可直接使用。本文先进行全局梳理和分类对比,帮助读者搭建完整的知识框架。后续章节会针对每一种类型单独拆解其语法、常用方法、常见陷阱和实际应用。
一、查看数据类型
1.1 type():精准查看数据类型
使用内置函数 type() 可以查看任意变量或字面量的数据类型,语法非常简单:
num = 18 print(type(num)) #
1.2 isinstance():判断是否属于某类类型
内置函数 isinstance(待判断对象, 类型) 用于判断某个变量是否属于指定类型,返回 True 或 False:
num = 10 print(isinstance(num, int)) # True print(isinstance(num, str)) # False s = "python" print(isinstance(s, str)) # True
二、标准数据类型
Python的基础数据类型,按是否可变可分为两大类。
(1)不可变类型
值无法原地修改,一旦修改就会生成全新对象。包括:Number(数字)、String(字符串)、Tuple(元组)。
# 1. int整数 a = 10 print(id(a)) a = a + 5 # 看似修改,实际新建对象 print(id(a)) # 地址不一样 # 2. 字符串str s = "hello" print(id(s)) s += "world" print(id(s)) # 地址改变 # 3. 元组tuple t = (1, 2, 3) print(id(t)) t = t + (4) print(id(t)) # 地址改变
小贴士:id() 函数返回对象在内存中的唯一地址数字。
(2)可变类型
值可以原地修改,修改后内存地址不变。包括:List(列表)、Dictionary(字典)、Set(集合)。
# 1.列表
lst = [1,2,3]
print(id(lst))
lst.append(4) # 原地追加元素
lst[0] = 99 # 索引修改元素
print(id(lst)) # 地址完全不变
# 2.字典
d = {"name":"小明"}
print(id(d))
d["age"] = 18
print(id(d)) # 地址不变
# 3.集合
s = {1,2,3}
print(id(s))
s.add(4)
print(id(s)) # 地址不变
三、数字类型(Number)
数字类型细分为3种子类型,专门用于数学计算。
3.1 int 整数
核心特点:
- 可以存储正负整数和0
- Python3 没有长整型限制,只要内存够大,整数可以任意大
a = 10 b = -66 c = 0 d = 9999999999999999999999999999 print(type(a)) # 输出:
小贴士:Python的int类型变量表示的数据范围没有上限,只要内存足够大,理论上就可以表示无限大小的数据。
3.2 float 浮点数
核心特点:
- 表示带小数的数字,支持科学计数法
- 采用双精度存储
- 存在精度损耗,不适合高精度金额计算
f1 = 3.14 f2 = -0.618 f3 = 5e3 # 5*10^3 = 5000.0 print(type(f1)) # 输出:
3.3 bool 布尔类型
核心特点:
- 只有两个值:
True、False - 本质是特殊整数(int子类),
True = 1,False = 0 True和False首字母切记要大写
# 取值只有两种:True 和 False flag1 = True flag2 = False # True = 1,False = 0 print(True + 5) # 6 # 本质是 int 子类 print(isinstance(True, int)) # True print(type(flag1)) #
四、字符串(string)
使用单引号''、双引号""、三引号"""包裹的文本内容,称为字符串。
核心特点:
- 不可变,不能单独修改某一个字符,比如
s[0]='x'直接报错 - 支持拼接、切片、长度获取等操作
- 用来存储文字、符号、中文等文本信息
# 单引号 s1 = 'hello' # 双引号(可直接嵌套单引号,避免转义) s2 = "I'm Python" # 三引号:多行字符串(支持换行,常用于多行文本、文档注释) s3 = """第一行 第二行""" # 原始字符串(r 前缀,取消转义字符) s4 = r'C:Usersname' # 不会被识别为转义符 print(type(s1)) # 输出:
五、列表(List)
列表是有序、可变的元素序列,是Python最灵活、最常用的通用容器。
核心特点:
- 使用方括号
[]定义 - 可存放任意类型数据
- 支持任意类型元素增、删、改、查
lst = [10, "张三", 3.14] lst[0] = 99 # 修改元素,合法 print(type(lst)) # 输出:
六、元组(Tuple)
元组是有序、不可变的元素序列,可以理解为只读版本的列表。
核心特点:
- 使用圆括号
()定义 - 元素一旦定义不能修改,安全性更高
t = (1, 2, "abc") # t[0] = 5 报错,不允许修改 print(type(t)) # 输出:
七、字典(Dictionary)
字典是键值对({key:value})映射类型,是Python查询效率最高的容器。
- 使用大括号
{key:value}定义 - key:必须不可变类型(int/str/tuple),唯一不重复
- value:任意数据类型
dic = {"name":"李四", "age":22, "score":[90,88]}
# 取值
print(dic["name"])
print(type(user)) # 输出:
八、集合(Set)
集合是无序、不重复的元素容器,底层基于哈希表实现。
- 使用大括号
{元素}定义 - 元素唯一,自动去重
- 常用作去重、交集并集运算
s = {1,2,2,3,3,3}
print(s) # {1, 2, 3} 自动去重
print(type(s)) # 输出:
全文总结
本文主要讲解了:
type()查看类型、isinstance()判断是否属于某类类型;- Python基础类型分为数字、字符串、元组、列表、字典、集合;
- 可变/不可变是选择类型的关键依据:修改频繁优先列表,数据固定优先元组。
