如何使用整数(int)和浮点数(float)?
数字是程序中最常见的数据之一。
例如:
- 年龄
- 成绩
- 商品价格
- 身高
- 温度
- 数量
在 Python 中,数字主要分为两种类型:
- 整数(Integer,
int) - 浮点数(Floating Point Number,
float)
学习它们后,你就可以编写各种数学计算程序。
什么是整数(int)?
整数(int)表示:
没有小数部分的数字。
例如:
10
0
-5
都是整数。
创建整数变量:
my_int = 56
print(my_int)
输出:
56
查看类型:
print(type(my_int))
输出:
<class 'int'>
什么是浮点数(float)?
浮点数(float)表示:
带有小数部分的数字。
例如:
3.14
0.5
-12.0
都是浮点数。
例如:
price = 5.4
print(type(price))
输出:
<class 'float'>
基本算术运算
Python 支持常见的数学运算。
| 运算 | 运算符 | 示例 |
|---|---|---|
| 加法 | + |
3 + 2 |
| 减法 | - |
3 - 2 |
| 乘法 | * |
3 * 2 |
| 除法 | / |
3 / 2 |
加法(+)
整数:
a = 56
b = 12
print(a + b)
输出:
68
浮点数:
x = 5.4
y = 12.0
print(x + y)
输出:
17.4
减法(-)
整数:
print(56 - 12)
输出:
44
浮点数:
print(12.0 - 5.4)
输出:
6.6
乘法(*)
整数:
print(12 * 4)
输出:
48
浮点数:
print(12.0 * 5.4)
输出:
64.80000000000001
这里可能会发现:
64.80000000000001
而不是:
64.8
这是浮点数精度问题,后面会解释原因。
除法(/)
除法始终使用:
/
例如:
print(56 / 12)
输出:
4.666666666666667
即使:
56
和:
12
都是整数,
只要使用:
/
结果就是:
浮点数。
整数与浮点数混合运算
如果:
整数和浮点数一起计算。
例如:
my_int = 56
my_float = 5.4
print(my_int + my_float)
输出:
61.4
查看类型:
print(type(my_int + my_float))
输出:
<class 'float'>
Python 会自动:
把整数提升(转换)为浮点数,再进行计算。
不仅加法如此,
减法、乘法、除法也是一样。
取模运算(%)
取模(Modulo)表示:
计算除法后的余数。
使用:
%
例如:
print(56 % 12)
输出:
8
因为:
56 ÷ 12 = 4 …… 8
所以:
余数就是:
8
浮点数也可以使用:
print(12.0 % 5.4)
输出:
1.1999999999999993
整除(//)
整除(Floor Division)表示:
只保留除法结果的整数部分(向下取整)。
使用:
//
例如:
print(56 // 12)
输出:
4
因为:
56 ÷ 12 = 4.666...
向下取整得到:
4
浮点数:
print(12.0 // 5.4)
输出:
2.0
幂运算(**)
幂运算表示:
一个数的多少次方。
使用:
**
例如:
print(2 ** 3)
输出:
8
因为:
2 × 2 × 2
等于:
8
再例如:
print(5 ** 2)
输出:
25
为什么浮点数有很多小数?
很多初学者都会发现:
print(0.1 + 0.2)
输出:
0.30000000000000004
而不是:
0.3
这是因为:
计算机内部使用**二进制(Binary)**存储数字。
有些十进制小数(例如 0.1、0.2)无法用有限位二进制精确表示,只能保存一个非常接近的近似值,因此计算后可能出现微小误差。
这属于所有现代计算机都会遇到的问题,并不是 Python 的错误。
float() —— 转换为浮点数
float() 的作用:
将数据转换为浮点数。
例如:
num = 56
result = float(num)
print(result)
输出:
56.0
类型:
<class 'float'>
int() —— 转换为整数
int() 的作用:
将数据转换为整数。
例如:
num = 12.92563
print(int(num))
输出:
12
注意:
int()不会四舍五入,而是直接去掉小数部分(截断)。
例如:
print(int(9.99))
输出:
9
字符串转换为数字
如果字符串表示的是合法数字,
也可以转换。
例如:
text = "45"
print(int(text))
输出:
45
浮点数:
text = "7.8"
print(float(text))
输出:
7.8
注意:
字符串内容必须是合法数字,否则会报错。
例如:
int("hello")
会产生 ValueError。
round() —— 四舍五入
作用:
将数字四舍五入。
例如:
print(round(4.798))
输出:
5
也可以指定保留的小数位数:
print(round(4.253, 1))
输出:
4.3
语法:
round(数字, 保留位数)
abs() —— 绝对值
作用:
返回一个数字的绝对值。
例如:
print(abs(-15))
输出:
15
绝对值就是:
去掉正负号后的数值大小。
pow() —— 幂运算函数
pow() 与:
**
作用基本相同。
例如:
print(pow(2, 3))
输出:
8
等价于:
print(2 ** 3)
还支持第三个参数:
pow(2, 3, 5)
表示:
(2³) % 5
计算过程:
8 % 5
结果:
3
常见数字运算符速查表
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
+ |
加法 | 5 + 2 |
7 |
- |
减法 | 5 - 2 |
3 |
* |
乘法 | 5 * 2 |
10 |
/ |
除法 | 5 / 2 |
2.5 |
% |
取模 | 5 % 2 |
1 |
// |
整除 | 5 // 2 |
2 |
** |
幂运算 | 5 ** 2 |
25 |
常用数字函数速查表
| 函数 | 作用 | 示例 |
|---|---|---|
int() |
转换为整数 | int(3.8) → 3 |
float() |
转换为浮点数 | float(5) → 5.0 |
round() |
四舍五入 | round(3.1415, 2) → 3.14 |
abs() |
求绝对值 | abs(-8) → 8 |
pow() |
幂运算 | pow(2, 3) → 8 |
常见错误
❌ 认为 int() 会四舍五入
错误理解:
int(9.9)
结果:
10
实际上:
输出:
9
因为:
int() 只是去掉小数部分,不会四舍五入。
❌ 浮点数比较结果不准确
例如:
0.1 + 0.2
输出:
0.30000000000000004
这是计算机浮点数表示方式导致的正常现象,并不是程序出错。
学习小结
| 知识点 | 说明 |
|---|---|
整数(int) |
没有小数部分的数字。 |
浮点数(float) |
带有小数部分的数字。 |
| 混合运算 | int 与 float 运算时,结果自动转换为 float。 |
| 常见运算符 | +、-、*、/、%、//、**。 |
| 类型转换 | int()、float() 可在数字和数字字符串之间进行转换。 |
| 数值处理函数 | round() 四舍五入,abs() 求绝对值,pow() 求幂。 |
| 浮点数误差 | 某些小数无法被二进制精确表示,因此计算结果可能出现微小误差。 |
总结
- 整数(
int)和浮点数(float)是 Python 中最常用的两种数字类型,可用于各种数学计算。 - Python 支持加、减、乘、除、取模、整除和幂运算等丰富的算术操作,并能自动处理整数与浮点数的混合运算。
- 使用
int()、float()可以完成类型转换,round()、abs()和pow()则可以帮助完成常见的数值处理任务。 - 理解浮点数精度误差及其产生原因,有助于正确处理涉及小数的计算,是学习科学计算和数据分析的重要基础。