Python 数据类型

今天咱们就来掰开揉碎了讲讲 Python 的数据类型。

什么是数据类型?简单说,就是给数据分分类、定属性。就跟人的身份一样,属性不同,能做的事也不一样。Python 里最基础的这几类,咱们一个个来看。


一、四大基础原子类型(单个值的类型)

1. 字符串 str(文本界的扛把子)

所有的文字、符号、句子,只要是文本,最终都属于字符串。

  • 特征:被单引号 ' '、双引号 " " 或三引号 """ """ 包起来。
  • 场景:打印输出的一段话、网页爬取的 HTML 源码、写的文案,都是字符串。
  • 注意:写前端的时候,不要把整段代码直接当字符串长期存变量里,这样通常不规范,也不方便维护。

示例:

name = "乾坤"
sentence = "Python 数据类型真有意思"

2. 整数 int(纯整数专用)

顾名思义,整数类型只能存整数,没有小数点。

  • 包含:正整数、负整数和 0。
  • 例子:011230-666,这些都是 int

示例:

age = 25
count = 10086

3. 浮点数 float(小数型)

带小数点的数字,叫作浮点数。

  • 例子:0.53.141599.9
  • 小知识:大模型里常说的 float16float32,就是指 16 位或 32 位精度的小数格式,用来控制精度和内存占用。

示例:

pi = 3.14
score = 98.5

4. 字节串 bytes(数据的原始形态)

这是数据较底层的一种二进制格式。

  • 平时少手动定义:新手很少直接写它,但其实经常会间接用到。
  • 场景:读取本地文件、网络请求返回的 response.content,原生往往就是 bytes
  • 注意:bytesstr 不一样。Python 不会总是自动帮我们转成字符串,很多时候需要自己解码,例如使用 .decode('utf-8')

简单示例:

text_bytes = b"hello"
print(text_bytes)

二、四大复合数据类型(装一堆值的容器)

1. 元组 tuple(固定不可变)

特点:一旦创建完成,通常就不能增、删、改。

  • 比喻:比如某些固定分类,或者一组不希望被修改的数据,就可以用元组。
  • 写法:小括号 ()

示例:

# 性别分类,通常不会再变
genders = ("男", "女")

# 固定的班级编号
class_ids = (101, 102, 103)

2. 列表 list(可变、能增删改)

特点:和元组相反,列表可以随时增加、删除、修改元素,像个伸缩自如的收纳盒。

  • 比喻:班级里可以转来新生,也可以转走学生,这种经常变化的数据就很适合放进列表。
  • 用途:数据处理中非常常见,尤其是爬虫程序存一批数据时,经常会用到列表。
  • 写法:中括号 []

示例:

# 同学列表,随时能加人
students = ["张三", "李四", "清月"]
students.append("新来的转校生")

3. 字典 dict(键值对精准定位)

字典的结构是:key: value,也就是“键: 值”。

  • 比喻:就像查字典一样,你想知道某个词的意思,直接按词去找对应解释。
  • 优点:通过 key(键)可以快速拿到 value(值),不需要像列表那样一个个去找。
  • 写法:大括号 {}

示例:

info = {
    "name": "清月",
    "age": 1800
}

# 精准取值,输出 清月
print(info["name"])

4. 集合 set(去重神器)

很多新手一开始不太理解集合,其实记住一句话就够了:无序、不重复

  • 特点:集合中的元素不会重复,而且没有固定顺序。
  • 比喻:你把一堆水果倒进去,苹果、香蕉、苹果、梨,它最后只会留下苹果、香蕉、梨。
  • 用法:爬虫去重,或者快速判断某个元素是否存在。

示例:

# 自动去重,结果类似 {1, 2, 3, 4}
nums = {1, 2, 2, 3, 4, 4}
print(nums)

三、两个特殊角色:布尔值与空值

1. 布尔值 bool(非黑即白的世界)

这是真正的“是非题”,只有两个结果。

  • 值:True(真)和 False(假)。
  • 场景:if 判断、循环条件等,都是靠布尔值来决定程序往哪条路走。

示例:

is_ok = True
is_finish = False

2. 空值 None(啥也没有)

None 是 Python 中一个特殊的值,表示“没有值”或者“空对象”。

  • 意义:它不是 0,也不是空字符串 "",而是真正表示“什么都没有”。
  • 用法:变量占位、表示暂无结果,或者函数没有显式返回值时,默认返回的就是 None

示例:

# 定义一个还没赋值的变量
result = None

# 判断如果有结果就输出,没结果就提示
if result is None:
    print("暂无数据")

四、终极技巧:数据类型互转

不同的数据类型之间,很多时候是可以互相转换的。
这在实际编程里非常常见,尤其是接收用户输入、做数学计算的时候。

  • 规则:能转的可以转,不能转的就会报错。

常见转换方式:

  • str(123):把整数 123 转成字符串 "123"
  • int("123"):把字符串 "123" 转成整数
  • float("3.14"):把字符串 "3.14" 转成浮点数

示例:

a = 123
b = str(a)
print(b)
print(type(b))

c = int("123")
print(c)
print(type(c))

d = float("3.14")
print(d)
print(type(d))

注意:

  • int("123") 可以正常转换。
  • int("3.14") 会直接报错,因为字符串 "3.14" 不是整数形式。
  • 如果要把 3.14 变成整数,可以先写成 int(3.14),结果会变成 3,它会直接去掉小数部分,不会四舍五入。

示例:

print(int(3.14))

输出结果:

3

总结

碰到文本就用 str,碰到整数计算用 int,带小数用 float,存一堆可变数据用 list,存固定不变的数据用 tuple,存键值对用 dict,需要去重时用 set,做判断时用 bool,占位置或表示空值时用 None

把这些基础类型搞明白了,后面学条件判断、循环、函数、爬虫,都会轻松很多。