4.数据类型
Python 数据类型
今天咱们就来掰开揉碎了讲讲 Python 的数据类型。
什么是数据类型?简单说,就是给数据分分类、定属性。就跟人的身份一样,属性不同,能做的事也不一样。Python 里最基础的这几类,咱们一个个来看。
一、四大基础原子类型(单个值的类型)
1. 字符串 str(文本界的扛把子)
所有的文字、符号、句子,只要是文本,最终都属于字符串。
- 特征:被单引号
' '、双引号" "或三引号""" """包起来。 - 场景:打印输出的一段话、网页爬取的 HTML 源码、写的文案,都是字符串。
- 注意:写前端的时候,不要把整段代码直接当字符串长期存变量里,这样通常不规范,也不方便维护。
示例:
name = "乾坤"
sentence = "Python 数据类型真有意思"2. 整数 int(纯整数专用)
顾名思义,整数类型只能存整数,没有小数点。
- 包含:正整数、负整数和 0。
- 例子:
0、1、1230、-666,这些都是int。
示例:
age = 25
count = 100863. 浮点数 float(小数型)
带小数点的数字,叫作浮点数。
- 例子:
0.5、3.14159、9.9。 - 小知识:大模型里常说的
float16、float32,就是指 16 位或 32 位精度的小数格式,用来控制精度和内存占用。
示例:
pi = 3.14
score = 98.54. 字节串 bytes(数据的原始形态)
这是数据较底层的一种二进制格式。
- 平时少手动定义:新手很少直接写它,但其实经常会间接用到。
- 场景:读取本地文件、网络请求返回的
response.content,原生往往就是bytes。 - 注意:
bytes和str不一样。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 = False2. 空值 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。
把这些基础类型搞明白了,后面学条件判断、循环、函数、爬虫,都会轻松很多。