当前位置:首页>python>【从零开始学Python】篇4-基础语法-数据类型

【从零开始学Python】篇4-基础语法-数据类型

  • 2026-10-11 07:55:13
【从零开始学Python】篇4-基础语法-数据类型
  • 不会数据类型,等于没学会Python

很多刚开始学Python的朋友,总会遇到这样的困惑:

- 为什么有时候数字能相加,字符串却报错?

- 列表和元组到底有什么区别?

- 什么时候用字典,什么时候用集合?

其实,这些问题都指向同一个核心概念——**数据类型**。

今天,我们就用最通俗的方式,把Python的常用数据类型一次讲清楚。

一、什么是“数据”?

数据在计算机中:归根结底是 0 和 1

计算机不认识“苹果”、“18”、“True”这些东西。它只认识两种状态:通电 和 断电。

  • 通电 = 1

  • 断电 = 0

所以,任何数据在计算机底层,都是一串 0 和 1 组成的二进制代码。

比如:

  • 数字 5 → 101

  • 字母 A → 1000001

  • 你正在看的这篇文章的每个字,背后也都是 0 和 1


类比一下,你就懂了

可以把计算机想象成一个只有两色的灯泡阵列(亮=1,灭=0):

  • 仅仅一个灯泡:只能表示 2 种状态(亮/灭)

  • 8 个灯泡:可以表示 256 种不同状态

  • 现代计算机里面,这样的“灯泡”有几十亿个

我们写的 "Hello"、100、True,最终都会被编程语言翻译成一串 0 和 1,塞给计算机执行。

二、什么是数据类型?

简单来说,**数据类型就是告诉Python“这是什么”**。

就像你不会把电话号码当成数学数字去计算一样,Python也需要区分不同类型的数据,才能正确地处理它们。

三、基础数据类型(必须掌握)

 1️⃣ 整数(int)

就是没有小数点的整数。

```pythonage = 18year = 2026negative = -10```

可以做加减乘除、取余数等数学运算。

 2️⃣ 浮点数(float)

就是带小数点的数。

```pythonpi = 3.14price = 19.99temp = -2.5```

⚠️ 注意:浮点数运算可能有一点点误差(比如0.1+0.2=0.30000000000000004),这是计算机底层的问题,正常现象。

3️⃣ 字符串(str)

用引号(支持:单引号''; 双引号""; 三单引号''''''; 三双引号"""""")包裹的文本。其中三引号支持多行文本。

```pythonname = "小明"city = '上海'message = """多行文本"""```

**常用操作:**

```python# 拼接"Hello" + " " + "World"# 重复"哈" * 3  # 哈哈哈# 取长度len("Python")  # 6```

 4️⃣ 布尔类型(bool)

只有两个值:`True`(真)和 `False`(假)。

```pythonis_student = Trueis_graduated = False```常用于条件判断:```pythonif is_student:    print("是学生")```

四、容器数据类型(重点中的重点)

 5️⃣ 列表(list)

特点:**有序、可变**,用方括号 `[]`。

```pythonfruits = ["苹果", "香蕉", "橙子"]scores = [90, 85, 92, 88]mixed = [1, "hello", True, 3.14]  # 可以混合```

**常用操作:**

```python# 取值(从0开始)fruits[0]  # 苹果# 添加fruits.append("葡萄")# 删除fruits.remove("香蕉")# 修改fruits[1] = "草莓"# 切片(取一段)fruits[0:2]  # 前两个```

 💡 **生活类比**:列表就像购物清单,可以随便增删改、调换顺序。

 6️⃣元组(tuple)

特点:**有序、不可变**,用圆括号 `()`。

```pythoncolors = ("红", "绿", "蓝")point = (10, 20)```

和列表的区别:**一旦创建,不能修改**(不能添加、删除、修改元素)。

 💡 **生活类比**:元组像你的身份证号,定了就改不了。

 7️⃣ 字典(dict)

特点:**键值对**存储,用花括号 `{}`。

```pythonperson = {    "name": "张三",    "age": 25,    "city": "北京"}```

**常用操作:**

```python# 取值person["name"]   # 张三# 赋值/修改person["age"] = 26# 添加新键值对person["job"] = "工程师"# 获取所有键person.keys()# 获取所有值person.values()```

 💡 **生活类比**:字典就像通讯录,找电话靠“姓名”这个键,查得快。

 8️⃣ 集合(set)

特点:**无序、不重复**,用花括号 `{}` 但无键值对。

```pythontags = {"Python", "数据", "编程"}numbers = {1, 2, 3, 3, 3}  # 自动去重 → {1, 2, 3}```

**常用操作:**

```python# 添加tags.add("AI")# 删除tags.remove("数据")# 并集{1, 2} | {2, 3}  # {1, 2, 3}# 交集{1, 2} & {2, 3}  # {2}```

 💡 **生活类比**:集合就像班级的花名册,每个人只出现一次,没有顺序。

 五、速查对比表

数据类型

符号
有序
可变
是否允许重复
列表list
[]

✅

✅

✅

元组tuple
()

✅

❌

✅
字典dict
{}

✅

✅
键唯一
集合set
{}
❌
✅
❌

六、常见坑点 & 小技巧

🔥 坑1:字符串和数字不能直接相加

```python# ❌ 错误"我今年" + 18  # ✅ 正确"我今年" + str(18)```

 🔥 坑2:列表的拷贝陷阱

```pythona = [1, 2, 3]b = a        # b只是a的别名b.append(4)print(a)     # [1,2,3,4]  a也被改了!# 正确拷贝b = a.copy()```

 🔥 坑3:用字典时小心KeyError

```python# ❌ 键不存在会报错person["salary"]# ✅ 安全取值person.get("salary", 0)   # 不存在返回0```

七、如何选择用哪种数据类型?

问自己三个问题:

1️⃣ **需要修改吗?** → 需要→列表/字典;不需要→元组  

2️⃣ **需要找得快吗?** → 需要→字典(用键查询)  

3️⃣ **需要去重吗?** → 需要→集合  

 写在最后

数据类型是Python的地基,地基越稳,上层建筑越牢固。

建议新手朋友:

- 每学一种类型,立刻在交互环境里敲几行代码

- 多练习 `type()` 函数,看看每个数据是什么类型

- 遇到报错不要慌,先检查数据类型是否匹配

📌 本文代码可左右滑动查看完整示例  

如果觉得有用,欢迎**点赞+在看+转发**给正在学Python的朋友!

**下期预告**:Python的条件判断和循环,让代码学会“思考”

*保持好奇,保持敲码。我们下期见!* 👋

最新文章

随机文章