数据类型
值是哪一种。种类不同,能做的事也不同。
它是什么
数据类型 说明值是哪一种。 电脑对每种类型能做的事不一样。
人看见「3」和「三」,都知道在说三。
电脑很较真。
3 能加减。
"3" 是文字,相加是拼接。
类型像贴在盒子上的说明书。 说明书决定你能对它做什么。
名字从哪来
类型的英文是 type 或 data type。 data 是数据,type 是种类。
数学里早就把对象分成整数、小数、几何图形。 编程把这个习惯写进语言:每种值属于一个类,有自己能做和不能做的事。
在 Python 里,你不必先宣布「这个盒子只装整数」。 你放进去什么,它就是什么类型。 换内容时,类型也可以跟着换。
有的语言更严格:盒子一旦说好只装整数,就不能再装文字。 Python 走的是另一条路:先用,再按值来认。
布尔类型的名字来自英国数学家乔治·布尔,详见 逻辑运算。
它怎么工作
常见基本类型:
| 类型 | 例子 | 含义 |
|---|---|---|
int | 3 | 整数 |
float | 3.14 | 小数,也叫浮点数 |
str | "hi" | 字符串 |
bool | True / False | 真假 |
list | [1, 2] | 列表 |
3 和 3.0 看起来像。
一个是整数,一个是小数。
"3" 更不同。
它是文字,不能直接拿去乘。
print(3 + 1)
print("3" + "1")第一行是 4。
第二行是 31。
文字相加是拼接。
type(x) 可以问:这个值是哪种类型。
print(type(3))
print(type("3"))
print(type(True))input 拿到的永远是字符串。 要做数学,先 类型转换。
int()转整数float()转小数str()转文字bool()转真假
True 和 False 首字母必须大写。
不要加引号。
加了引号,就变成普通文字了。
数字能加减。 文字能拼接、切割。 真假能拿去当 分支 的条件。 列表能按下标取东西。
搞清类型,很多报错会自己变明白。
尤其是 TypeError,常常在说:你让两种合不来的东西在一起干活。
生活里在哪里
- 超市条码和价格:一个是编号文字,一个是金额数字,不能拿条码去乘 2。
- 身份证号:看起来全是数字,却是文字编号。加 1 没有意义。
- 温度计上的 36.5:这是小数,不是「三十六点五」这几个字。
- 灯的开关:开或关,很像真或假。
- 书包:里面可以并排放好几样东西,有点像列表。
生活里我们凭经验换用法。 电脑必须先看类型,再决定能不能做。
和相近概念的差别
类型说的是「它是什么种类」。 变量 说的是「它叫什么名字」。
同一个名字,今天可以装整数,明天可以装文字。 类型跟着值走,不跟着名字走。
类型转换是「把一种变成另一种」。
它不是比较。
3 == 3.0 可以是真,但 int 和 float 仍是两种类型。
字符串、int、列表 都是类型中的成员。
本页讲的是「分类」这件事本身。
常见误会
误会 1:看见 3 就当整数。
先看有没有引号。
"3" 是文字。
误会 2:True 写成 true。
布尔值要大写。 小写会变成一个还没定义的名字。
误会 3:3 和 3.0 完全是同一个东西。
比较时它们可以相等。 类型仍不同。 有的运算更在意类型。
误会 4:"3" + 1 电脑会自动懂。
一边是文字,一边是数字。 要先转换,再算。
误会 5:类型只是一串要背的名词。
它是说明书。 说明书错了,加减、拼接、循环都会走错路。
想知道更多
- 书:潘洪波《小学生 Python 趣味编程》(用生活情境分开「数字」和「文字」)。
- 书:埃里克·马瑟斯《Python 编程:从入门到实践》(变量一章就会碰到类型,可以和家长一起对照例子)。
未登录时不会保存学习进度