Python 内置数据类型
在Python的世界里,数据类型就像是积木的种类,不同的数据类型可以搭建出各种各样的程序。Python 是一种动态类型语言,这意味着你不需要显式地声明变量的数据类型,Python 会自动根据赋给变量的值来推断其类型。 理解这些数据类型对于编写高效、可维护的 Python 代码至关重要。
什么是数据类型?
简单来说,数据类型定义了数据的种类,以及可以对这些数据执行的操作。Python 中的数据类型是与对象关联的,而不是与变量关联的。这意味着变量只是对象的引用,而对象本身才具有类型。
Python 的主要内置数据类型
Python 提供了丰富多样的内置数据类型,主要可以分为以下几类:
- 数字类型 (Numeric Types)
- 序列类型 (Sequence Types)
- 集合类型 (Set Type)
- 映射类型 (Mapping Type)
- 特殊类型 (Special Type)
其中,序列、集合和映射类型因为可以逐个访问元素,所以常被统称为可迭代对象 (iterables)。
1. 数字类型 (Numeric Types)
数字类型用于表示数值数据。Python 支持以下几种数字类型:
- 整型 (int):用于表示整数,例如:
-1
,0
,200
。整数没有大小限制,可以根据需要自动扩展。 - 浮点型 (float):用于表示实数(即带有小数部分的数),例如:
-1.1
,3e2
(科学计数法),20.0
。 - 复数 (complex):用于表示复数,例如:
2 + 1j
,-3j
,-1 + 2J
。复数由实部和虚部组成,虚部以j
或J
结尾。 - 布尔型 (bool):布尔类型是整型的子类型,只有两个值:
True
(真,对应整数1
)和False
(假,对应整数0
)。布尔类型常用于逻辑判断。
# 示例
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')
。
# 示例
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()
创建,而不是{}
,因为{}
表示空字典。
# 示例
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"}
。
# 示例
person = {"name": "Bob", "age": 25, "city": "New York"}
5. 特殊类型 (Special Type)
- None:
None
是一个特殊的值,表示空或不存在。它不是0
,也不是False
,而是代表缺少值。
# 示例
result = None