
Python 基本数据类型详解
- 📊 一、核心概览
- 🔢 二、数值类型 (Numeric Types)
-
- 1. 整数 (`int`)
- 2. 浮点数 (`float`)
- 3. 复数 (`complex`)
- 📝 三、文本类型:字符串 (`str`)
-
- 1. 定义方式
- 2. 核心操作 (2026 最佳实践)
- ✅ 四、布尔类型 (`bool`)
- 🚫 五、空值类型 (`NoneType`)
- 📦 六、容器类型简述 (Container Types)
- 🔄 七、类型转换 (Type Casting)
- 💡 八、如何查看类型?
- 🎯 总结与建议
这是 2026 最新版 Python 基本数据类型详解。
在 Python 中,一切皆对象。数据类型决定了对象能存储什么内容、能进行什么操作。Python 的数据类型主要分为两大类:基本数据类型(标量)和容器数据类型(复合)。
本指南将重点讲解基本数据类型,并简要介绍常用的容器类型,助你构建坚实的数据基础。
📊 一、核心概览
| 数值型 | 整数 | int | 不可变 | 任意大小的整数 |
| 浮点数 | float | 不可变 | 带小数的数字 | |
| 复数 | complex | 不可变 | 科学计算专用 (a+bj) | |
| 文本型 | 字符串 | str | 不可变 | 文本数据 |
| 逻辑型 | 布尔值 | bool | 不可变 | 真/假 (True/False) |
| 空值型 | 空值 | NoneType | 不可变 | 表示“无” (None) |
| 容器型 | 列表 | list | 可变 | 有序集合 […] |
| 元组 | tuple | 不可变 | 有序只读 (…) | |
| 字典 | dict | 可变 | 键值对 {k:v} | |
| 集合 | set | 可变 | 无序去重 {…} |
🔢 二、数值类型 (Numeric Types)
1. 整数 (int)
Python 的整数没有大小限制(仅受内存限制),无需像 C/Java 那样区分 short, long。
# 定义
age = 25
negative_num = –100
big_num = 10**100 # 1后面100个0,完全没问题
# 进制表示
binary_num = 0b1010 # 二进制 (10)
octal_num = 0o17 # 八进制 (15)
hex_num = 0xFF # 十六进制 (255)
print(type(age)) # <class 'int'>
2. 浮点数 (float)
用于表示带小数的数字。注意:浮点数运算可能存在精度误差(计算机底层二进制表示导致)。
price = 99.9
scientific = 3e8 # 科学计数法: 3 * 10^8 (300000000.0)
pi = 3.1415926
# ⚠️ 精度陷阱
print(0.1 + 0.2) # 输出: 0.30000000000000004 (不是精确的 0.3)
# 解决高精度计算需使用 decimal 模块
3. 复数 (complex)
主要用于科学计算和工程领域,形式为 a + bj。
c = 3 + 4j
print(c.real) # 实部: 3.0
print(c.imag) # 虚部: 4.0
📝 三、文本类型:字符串 (str)
字符串是 Python 中最常用的类型之一,不可变(创建后不能修改字符,只能生成新字符串)。
1. 定义方式
支持单引号、双引号、三引号。
s1 = 'Hello'
s2 = "World"
s3 = '''这是多行字符串
可以换行
保持格式'''
2. 核心操作 (2026 最佳实践)
- f-string 格式化 (最推荐):name = "Alice"
age = 25
msg = f"你好,{name}!明年你 {age + 1} 岁。"
# 支持表达式、函数调用 - 常用方法:text = " Python Guide "
text.strip() # 去除首尾空格: "Python Guide"
text.lower() # 转小写
text.replace("Guide", "Tutorial") # 替换
"Py" in text # 判断包含: True
text.split(" ") # 分割成列表: ['Python', 'Guide'] - 索引与切片:s = "Python"
print(s[0]) # 'P' (第一个)
print(s[–1]) # 'n' (最后一个)
print(s[0:3]) # 'Pyt' (切片,左闭右开)
✅ 四、布尔类型 (bool)
只有两个值:True 和 False。注意首字母必须大写。 布尔值本质上是整数的子类 (True == 1, False == 0)。
is_active = True
is_deleted = False
# 逻辑运算
print(True and False) # False
print(True or False) # True
print(not True) # False
# 真假值判断 (Truthiness)
# 以下值在布尔上下文中被视为 False:
# 0, 0.0, "", [], {}, (), None
if "":
print("不会执行")
if "Hello":
print("会执行")
🚫 五、空值类型 (NoneType)
None 是 Python 中表示“无”、“空”或“未定义”的特殊对象。它不等于 0 或 False。
data = None
# ✅ 正确判断方式
if data is None:
print("数据为空")
# ❌ 错误方式 (虽然能跑,但不规范)
if data == None:
pass
📦 六、容器类型简述 (Container Types)
虽然它们属于复合类型,但在基础学习中必须掌握。
| 列表 (list) | [1, 2, 3] | 有序、可变、可重复 | 存储一组需要修改的数据 |
| 元组 (tuple) | (1, 2, 3) | 有序、不可变、可重复 | 存储配置、坐标等不应修改的数据 |
| 字典 (dict) | {"key": "val"} | 键值对、键唯一、3.7+有序 | 存储结构化数据 (如用户信息) |
| 集合 (set) | {1, 2, 3} | 无序、不重复 | 去重、数学集合运算 |
快速示例:
# 列表
fruits = ["apple", "banana"]
fruits.append("orange")
# 字典
user = {"name": "Bob", "age": 30}
print(user["name"])
# 集合 (自动去重)
nums = {1, 2, 2, 3}
print(nums) # {1, 2, 3}
🔄 七、类型转换 (Type Casting)
在不同类型间进行显式转换。
# 字符串转数字
num_str = "123"
num_int = int(num_str) # 123
num_float = float("3.14") # 3.14
# 数字转字符串
age = 25
msg = "Age: " + str(age) # "Age: 25"
# 转布尔值
bool(0) # False
bool("Hi") # True
bool("") # False
# 列表转元组
t = tuple([1, 2, 3]) # (1, 2, 3)
💡 八、如何查看类型?
使用内置函数 type() 和 isinstance()。
x = 100
print(type(x)) # <class 'int'>
# 推荐:判断类型用 isinstance
if isinstance(x, int):
print("这是一个整数")
🎯 总结与建议
掌握这些数据类型及其特性,是你编写健壮、高效 Python 代码的基石!



