Python3 中的数据类型是编程的基础,用来定义数据的存储形式和操作规则。Python 是弱类型语言(无需提前声明类型,赋值自动推导),数据类型整体分为基本数据类型复合数据类型两大类,下面逐一讲解。

一、数据类型总览

Python3 标准数据类型分为:

  1. 基本数据类型(存单个值):数字、字符串、布尔值、空值
  2. 复合数据类型(存多个值):列表、元组、字典、集合

二、基本数据类型

1. 数字类型(Numbers)

用来存储数值,分为整型、浮点型、复数型,不可变(修改值会重新创建)。

(1)整型(int)
  • 存储整数,无大小限制(支持正整数、负整数、0)
  • 支持二进制(0b开头)、八进制(0o开头)、十六进制(0x开头)
a = 10        # 十进制整数
b = -5        # 负整数
c = 0b1010    # 二进制,等于10
d = 0x1a      # 十六进制,等于26
print(type(a))  # 查看类型:<class 'int'>
(2)浮点型(float)
  • 存储小数,支持科学计数法
x = 3.14      # 普通小数
y = -0.5      # 负小数
z = 2e3       # 科学计数法,等于2000.0
print(type(x))  # <class 'float'>
(3)复数型(complex)
  • 存储复数,格式:实部 + 虚部j(j必须写)
num = 3 + 4j
print(num.real)  # 实部:3.0
print(num.imag)  # 虚部:4.0

2. 字符串类型(str)

  • 存储文本数据,用单引号、双引号、三引号包裹
  • 不可变(修改字符串会生成新字符串)
  • 支持索引、切片、拼接
# 定义字符串
s1 = 'Hello'        # 单引号
s2 = "Python"       # 双引号
s3 = '''多行字符串
可以换行写'''       # 三引号(支持多行)

# 常用操作
print(s1 + s2)      # 拼接:HelloPython
print(s1[0])        # 索引取字符:H
print(s1[1:4])      # 切片:ell

3. 布尔类型(bool)

  • 只有两个值:True(真)False(假)
  • 本质是int的子类(True=1,False=0)
  • 常用于条件判断、循环控制
is_student = True
is_teacher = False

print(1 > 2)   # 条件判断返回False
print(True + 1)# 结果:2

4. 空值类型(NoneType)

  • 只有一个值:None,表示空、无、未赋值
  • 不等于0、空字符串、False,是独立类型
data = None
print(type(data))  # <class 'NoneType'>

三、复合数据类型

1. 列表(list)

  • 最常用的有序、可变序列,用[]包裹
  • 可存储不同类型的数据(数字、字符串、列表等)
  • 支持增删改查操作
# 定义列表
lst = [1, "python", 3.14, True]

# 常用操作
lst[0] = 100       # 修改元素:[100, "python", 3.14, True]
lst.append(5)      # 末尾添加元素
print(lst[1])      # 索引取值:python

2. 元组(tuple)

  • 有序、不可变序列,用()包裹
  • 一旦定义,不能修改元素(比列表更安全)
  • 只有1个元素时,必须加逗号:(1,)
# 定义元组
tpl = (10, "java", 2.5)

# 取值(和列表一致)
print(tpl[0])  # 10

# 尝试修改会报错!
# tpl[0] = 20  # 报错:TypeError

3. 字典(dict)

  • 无序(3.7+有序)、可变键值对集合,用{}包裹
  • 键(key)必须唯一、不可变(int/str/tuple),值(value)可任意类型
  • 快速取值,效率最高
# 定义字典(键: 值)
person = {
    "name": "张三",
    "age": 20,
    "is_student": True
}

# 常用操作
print(person["name"])  # 取值:张三
person["age"] = 21     # 修改值
person["gender"] = "男"# 添加键值对

4. 集合(set)

  • 无序、不重复的集合,用{}包裹(空集合必须用set()
  • 自动去重,支持交集、并集、差集运算
  • 不能存储可变类型(列表、字典)
# 定义集合(自动去重)
s = {1, 2, 2, 3, "python"}
print(s)  # {1,2,3,"python"}

# 集合运算
a = {1,2,3}
b = {3,4,5}
print(a & b)  # 交集:{3}
print(a | b)  # 并集:{1,2,3,4,5}

四、核心知识点:可变 vs 不可变类型

  1. 不可变类型:修改值会创建新对象,原数据不变
    • int、float、str、bool、tuple、None
  2. 可变类型:直接修改原数据,不创建新对象
    • list、dict、set

五、常用类型判断与转换

1. 查看数据类型:type()

print(type(10))      # <class 'int'>
print(type([1,2]))   # <class 'list'>

2. 类型转换

# 转整型
int("10")    # 10
# 转字符串
str(123)     # "123"
# 转列表
list((1,2))  # [1,2]
# 转布尔值
bool(0)      # False

总结

  1. Python3 数据类型分基本类型(int/float/str/bool/None)和复合类型(list/tuple/dict/set)
  2. 核心区别:可变(list/dict/set) vs 不可变(int/str/tuple)
  3. 日常开发:列表存有序数据、字典存键值对、字符串存文本、数字存数值

更多推荐