当前位置:首页>python>《Python 从入门到精通》011 | 数字类型全解析:int、float、complex 都是什么

《Python 从入门到精通》011 | 数字类型全解析:int、float、complex 都是什么

  • 2026-09-12 18:00:31
《Python 从入门到精通》011 | 数字类型全解析:int、float、complex 都是什么

从这一篇开始,我们正式进入第二阶段,开始系统讲 Python 里的基础数据类型。

学 Python,迟早都会碰到数字。

年龄是数字 分数是数字 价格是数字 身高体重是数字 程序里的加减乘除,更离不开数字

但很多新手一开始会以为,数字不就是数字吗,为什么还要分类型。

其实在 Python 里,数字并不只有一种。最常见的就有三类:

整数 int 浮点数 float 复数 complex

今天这篇,我们就把它们讲清楚。重点会放在前两种,因为这是你平时写程序最常用的。第三种复数,你先知道它是什么就够了。

一、为什么数字还要分类型

先想一个最简单的问题。

18 和 18.5 一样吗

从生活角度看,它们当然都算数字。 但从程序角度看,它们不一样。

18 是整数,没有小数部分。 18.5 是小数,有小数部分。

程序为什么要区分它们。

因为不同类型的数据,处理方式可能不一样。 比如显示方式不同,占用空间不同,参与运算时的结果也可能不同。

所以 Python 在内部不会把所有数字都一锅端,而是会分门别类地处理。

你可以先记住一句很重要的话:

在编程里,值很重要,类型也很重要。

二、第一种数字类型,int 整数

先看最常见的。

整数,也就是 int,英文全称是 integer。

它表示没有小数部分的数字。

比如:

age = 18year = 2025count = 100temperature = -5print(age)print(year)print(count)print(temperature)

这些都是整数。

你会发现,整数不只是正数。 0、负数,也都属于整数。

比如:

a = 0b = -10c = 256print(type(a))print(type(b))print(type(c))

运行后你会看到:

<class 'int'><class 'int'><class 'int'>

这里的 type() 很有用。 它的作用就是查看一个数据的类型。

所以你以后不确定某个值到底是什么类型时,可以先用:

print(type(变量名))

来看看。

三、整数最常见的使用场景

整数几乎到处都在用。

比如年龄:

age = 20

比如库存数量:

stock = 300

比如学生人数:

student_count = 45

比如循环次数,后面你学循环时会经常见到:

times = 10

只要这个数不需要小数,通常就可以用整数。

你现在可以做个小练习。

新建一个文件 int_test.py,写入:

age = 21score = 95count = 8print(age)print(score)print(count)print(type(age))print(type(score))print(type(count))

自己运行一下,感受一下整数的使用方式。

四、第二种数字类型,float 浮点数

接下来是小数。

在 Python 里,小数通常属于 float,也就是浮点数。

比如:

price = 19.9height = 1.75weight = 60.5pi = 3.14159print(price)print(height)print(weight)print(pi)

你也可以用 type() 看看:

price = 19.9print(type(price))

输出通常是:

<class 'float'>

所以只要一个数字里有小数点,Python 一般就会把它识别为 float。

比如:

a = 10.0b = 0.5c = -3.14print(type(a))print(type(b))print(type(c))

这几个都是浮点数。

五、浮点数最常见的使用场景

浮点数特别适合表示那些可能带小数的数据。

比如价格:

price = 29.9

比如身高:

height = 1.82

比如体温:

temperature = 36.5

比如平均分:

average_score = 88.6

这些数据如果用整数表示,就会丢失精度。

所以以后你看到有小数的场景,通常就要想到 float。

六、整数和浮点数看起来很像,但类型不一样

这一点特别值得你注意。

比如下面这两个值:

a = 10b = 10.0

看起来都像 10。 但它们不是同一种类型。

你可以自己验证:

a = 10b = 10.0print(type(a))print(type(b))

输出会是:

<class 'int'><class 'float'>

也就是说:

10 是整数10.0 是浮点数

这一点以后做运算、做类型判断时会很重要。

七、整数和浮点数怎么运算

先看整数和整数。

a = 10b = 3print(a + b)print(a - b)print(a * b)print(a / b)

输出会是:

137303.3333333333333335

注意最后这个除法结果。 虽然 a 和 b 都是整数,但只要做普通除法 /,结果通常会变成浮点数。

这点很重要。

再看一个例子:

print(type(10 / 2))

你会发现结果仍然是:

<class 'float'>

也就是说,在 Python 里,普通除法的结果默认是浮点数。

八、还有几种很常用的数字运算

除了加减乘除,还有几个你后面会经常见到。

  1. 整除 //
print(10 // 3)

结果是:

3

整除的意思,就是只保留整数部分。

  1. 取余 %
print(10 % 3)

结果是:

1

取余就是看除完以后还剩多少。

  1. 幂运算 **
print(2 ** 3)

结果是:

8

这个表示 2 的 3 次方。

你可以自己做个小练习:

a = 15b = 4print(a + b)print(a - b)print(a * b)print(a / b)print(a // b)print(a % b)print(a ** b)

把每个结果都跑出来看看。

九、为什么有时候小数计算结果看起来怪怪的

这也是新手经常遇到的情况。

比如:

print(0.1 + 0.2)

你可能以为结果会是:

0.3

但实际很可能看到:

0.30000000000000004

很多人第一次看到会怀疑人生,觉得是不是 Python 算错了。

其实不是。

这是因为计算机内部表示浮点数的方式决定的。 有些十进制小数,转换成二进制后没法精确表示,所以会出现这种看起来很奇怪的小误差。

你现在不用深究底层原理。 只要先知道两件事:

第一,这很正常,不是你写错了。 第二,做金额、成绩这类场景时,通常会配合格式化显示来处理。

比如你可以先这样做:

result = 0.1 + 0.2print(result)print(f'{result:.1f}')

输出会类似这样:

0.300000000000000040.3

这里的 :.1f 表示保留 1 位小数。 这个用法你现在先会用就行,后面讲字符串格式化时还会更详细展开。

十、第三种数字类型,complex 复数

这个类型在入门阶段用得不多,但你最好先知道它存在。

复数一般长这样:

a = 3 + 4jprint(a)print(type(a))

输出通常是:

(3+4j)<class 'complex'>

这里的 j 表示虚数单位。

如果你以前学过数学里的复数,这里就很好理解。 如果你没学过,也完全没关系。

你现在只需要知道:

Python 支持复数 复数类型叫 complex但在日常入门练习、办公自动化、基础开发里,几乎很少用到

所以现阶段,把重点放在 int 和 float 就够了。

十一、怎么把字符串转换成数字

前面讲输入输出时,你已经见过这个问题。

input() 获取到的内容,默认都是字符串。 如果你想让它参与数字计算,就要做类型转换。

先看整数转换。

age = int(input('请输入你的年龄:'))print(age)print(type(age))

如果输入:

18

那么 age 就会变成整数。

再看浮点数转换。

price = float(input('请输入商品单价:'))print(price)print(type(price))

如果输入:

19.9

那么 price 就会变成浮点数。

这两个转换以后会非常常用,一定要练熟。

十二、实操,做一个数字类型识别小程序

下面这个练习很适合你现在做。

age = 20price = 39.9number = 3 + 2jprint(age, type(age))print(price, type(price))print(number, type(number))

运行一下,看看这三种数字类型分别长什么样。

然后你再自己改。

把 age 改成别的整数 把 price 改成别的小数 把 number 改成别的复数

不用怕麻烦,自己改一遍,比看十遍都强。

十三、实操,做一个商品计算小程序

这个更贴近日常使用。

需求是这样的:

输入商品单价和购买数量 输出总价

代码如下:

price = float(input('请输入商品单价:'))count = int(input('请输入购买数量:'))total = price * countprint(f'商品总价是:{total}')

这里为什么一个用 float(),一个用 int()。

因为单价可能带小数,比如 19.9。 而数量通常是整数,比如 3 件、5 件。

你可以自己试几组输入:

19.9 和 3 8.5 和 10 100 和 2

看看输出结果分别是什么。

然后你再升级一下,让程序多输出一句:

print(f'单价类型是:{type(price)}')print(f'数量类型是:{type(count)}')

这样你对数字类型会更有感觉。

十四、再做一个平均分小程序

这个例子也特别适合练习 int 和 float。

chinese = int(input('请输入语文成绩:'))math = int(input('请输入数学成绩:'))english = int(input('请输入英语成绩:'))total = chinese + math + englishaverage = total / 3print(f'总分是:{total}')print(f'平均分是:{average}')print(type(total))print(type(average))

你可以观察一下:

total 一般是整数average 往往会变成浮点数

为什么。

因为总分是整数相加。 但平均分做了除法,所以结果通常会是浮点数。

这个例子特别好,因为它能让你真实感受到:

同样是数字,经过不同运算,类型也可能变化。

十五、新手最容易犯的几个数字类型错误

第一,明明要算数,却忘了做类型转换。

比如:

a = input('请输入第一个数字:')b = input('请输入第二个数字:')print(a + b)

如果输入 10 和 20,结果会变成:

1020

因为它们还是字符串,不是数字。

正确写法:

a = int(input('请输入第一个数字:'))b = int(input('请输入第二个数字:'))print(a + b)

第二,把小数强行转成整数。

比如:

price = int('19.9')

这通常会报错。因为 '19.9' 不是一个纯整数形式的字符串。

如果你确实要处理这种值,应该先用:

price = float('19.9')

第三,不清楚什么时候该用 int,什么时候该用 float。

最简单的判断方法就是:

没有小数,用 int 可能有小数,用 float

虽然不是所有场景都绝对这样,但对入门阶段来说已经够用了。

十六、做一个今天一定要亲手敲的综合练习

下面这个小程序,很适合你现在练。

需求:

输入一个人的姓名、年龄、身高、体重 最后输出这些信息,并显示每个数字的类型

代码如下:

name = input('请输入姓名:')age = int(input('请输入年龄:'))height = float(input('请输入身高,单位米:'))weight = float(input('请输入体重,单位公斤:'))print('------ 个人信息 ------')print(f'姓名:{name}')print(f'年龄:{age},类型是:{type(age)}')print(f'身高:{height},类型是:{type(height)}')print(f'体重:{weight},类型是:{type(weight)}')

你亲手敲一遍以后,再自己改造一下。

比如增加一个月收入 或者增加一个考试平均分 或者增加一个商品价格

只要你开始自己加字段,说明你已经在真正掌握这些内容了。

十七、写在最后

数字类型这个东西,看起来像很基础的知识点,甚至有点像在讲常识。 但它其实特别重要。

因为后面你写判断、做运算、处理用户输入、分析数据,几乎都离不开它。

你现在最需要建立的,不是死记概念,而是这种直觉:

整数和小数不一样 不同类型参与运算时,结果可能变化 输入进来的内容不一定就是数字 程序处理数字时,类型本身就是信息的一部分

当你慢慢有了这种感觉,后面的代码会好理解很多。

本文小结

Python 里最常见的数字类型有 int、float、complex。 int 表示整数,float 表示小数,complex 表示复数。 入门阶段最常用的是 int 和 float。 普通除法 / 的结果通常是 float。 输入得到的内容默认是字符串,做数字计算前通常要用 int() 或 float() 转换。 学习数字类型最好的方式,不是背定义,而是多写几个真实小程序。

下篇预告

第 12 篇,我们来讲另一个特别常用的数据类型。

字符串入门:最常用也最容易忽视的数据类型

你写名字、城市、文本、提示语、文件内容,几乎都离不开字符串。 学会它,后面很多程序都会更顺手。

最新文章

随机文章