Skip to content

Python 内置数据类型

在Python的世界里,数据类型就像是积木的种类,不同的数据类型可以搭建出各种各样的程序。Python 是一种动态类型语言,这意味着你不需要显式地声明变量的数据类型,Python 会自动根据赋给变量的值来推断其类型。 理解这些数据类型对于编写高效、可维护的 Python 代码至关重要。

什么是数据类型?

简单来说,数据类型定义了数据的种类,以及可以对这些数据执行的操作。Python 中的数据类型是与对象关联的,而不是与变量关联的。这意味着变量只是对象的引用,而对象本身才具有类型。

Python 的主要内置数据类型

Python 提供了丰富多样的内置数据类型,主要可以分为以下几类:

  1. 数字类型 (Numeric Types)
  2. 序列类型 (Sequence Types)
  3. 集合类型 (Set Type)
  4. 映射类型 (Mapping Type)
  5. 特殊类型 (Special Type)

其中,序列、集合和映射类型因为可以逐个访问元素,所以常被统称为可迭代对象 (iterables)

1. 数字类型 (Numeric Types)

数字类型用于表示数值数据。Python 支持以下几种数字类型:

  • 整型 (int):用于表示整数,例如:-1, 0, 200。整数没有大小限制,可以根据需要自动扩展。
  • 浮点型 (float):用于表示实数(即带有小数部分的数),例如:-1.1, 3e2 (科学计数法), 20.0
  • 复数 (complex):用于表示复数,例如:2 + 1j, -3j, -1 + 2J。复数由实部和虚部组成,虚部以 jJ 结尾。
  • 布尔型 (bool):布尔类型是整型的子类型,只有两个值:True(真,对应整数 1)和 False(假,对应整数 0)。布尔类型常用于逻辑判断。
python
# 示例
age = 30          # int
price = 99.99       # float
complex_num = 3 + 4j  # complex
is_valid = True     # bool

2. 序列类型 (Sequence Types)

序列类型用于表示有序的元素集合。序列中的每个元素都可以通过索引来访问。Python 提供了以下几种序列类型:

  • 字符串 (str):字符串是由零个或多个 Unicode 字符组成的不可变序列,用单引号 (') 或双引号 (") 括起来。例如:"42", 'hello', "python"

    Unicode 是一种字符编码标准,几乎包含了世界上所有的字符。

  • 列表 (list):列表是可变的序列,可以包含不同类型的元素,用方括号 [ ] 括起来。例如:[1, 2, 3], ['abc', 23, 3.14], ['edpunk', 'python']

  • 元组 (tuple):元组是不可变的序列,可以包含不同类型的元素,用圆括号 ( ) 括起来。例如:(1, 2, 3), ('abc', 23, 3.14), ('edpunk', 'python')

python
# 示例
name = "Alice"      # str
numbers = [1, 2, 3, 4]  # list
coordinates = (10, 20)  # tuple

3. 集合类型 (Set Type)

集合类型用于表示无序、不重复的元素集合。集合中的元素是唯一的。Python 提供了以下集合类型:

  • 集合 (set):集合是可变的,用花括号 { } 括起来。例如:{1, 2, 3}, {'abc', 23, 3.14}, {'edpunk', 'python'}。注意:空集合必须用 set() 创建,而不是 {},因为 {} 表示空字典。
python
# 示例
unique_numbers = {1, 2, 3, 3} # {1, 2, 3},重复的3会被自动去除
programming_languages = {"Python", "Java", "C++"}

4. 映射类型 (Mapping Type)

映射类型用于表示键值对的集合,其中每个键都映射到一个值。Python 提供了以下映射类型:

  • 字典 (dict):字典是可变的,用花括号 { } 括起来,键值对之间用冒号 : 分隔,键值对之间用逗号 , 分隔。键必须是不可变的类型(例如:字符串、数字、元组),值可以是任意类型。例如:{1: "a", 2: "b", 3: "c"}, {"name": "edpunk", "language": "python"}
python
# 示例
person = {"name": "Bob", "age": 25, "city": "New York"}

5. 特殊类型 (Special Type)

  • None: None 是一个特殊的值,表示空或不存在。它不是 0,也不是 False,而是代表缺少值。
python
# 示例
result = None