15 分钟
Python 入门

整数与浮点数

掌握 Python 的两种数字类型和七种算术运算

  • 区分整数 int 和浮点数 float
  • 掌握 +、-、*、/、//、%、** 七种运算
  • 理解运算优先级和括号

两种数字类型

Python 有两种内置数字类型:整数(int)和浮点数(float)。

整数(int):没有小数点的数,可以是正数、负数或零。比如 10、-5、0、1000000。Python 的整数没有大小限制,能写非常大的数。

浮点数(float):带小数点的数。如 3.14、-2.5、1.0。注意 1.0 虽然数学上等于 1,但在 Python 中它是浮点数。

示例代码(可运行)
ℹ️type() 函数

type(x) 可以查看变量 x 的类型。调试的时候很好用——拿不准一个变量是什么类型,直接用 type() 查。

七种算术运算符

示例代码(可运行)

整除 // 和取余 % 是初学者最容易混淆的。拿分苹果打比方:7 个苹果分给 3 个人,每人分到 2 个(//),还剩 1 个(%)。

示例代码(可运行)
⚠️除法的两个细节

/ 永远返回浮点数:10 / 2 = 5.0 而不是 5。// 是向下取整(不是四舍五入):7 // 3 = 2,-7 // 3 = -3(因为 -3 比 -2 更小)。

浮点数精度问题

这是所有编程语言都有的问题:浮点数在计算机中用二进制存储,有些十进制小数无法精确表示。

示例代码(可运行)

这不是 bug,是浮点数的特性。实际开发中比较浮点数应该用「近似相等」:

示例代码(可运行)
🐍资深工程师经验谈

做金融、电商这类跟钱打交道的业务,绝对别用 float 存金额。0.1 + 0.2 ≠ 0.3 这种误差,算的次数多了会攒成大问题。Python 里有 decimal.Decimal 可以做精确的十进制运算,也可以用整数存「分」——比如 10.50 元就存成 1050。这是初级和高级开发者的分水岭:知道什么时候不能用 float,比会用 float 重要得多。

预测输出
print(10 / 2)
print(10 // 3)
print(10 % 3)

运算优先级

优先级从高到低:** > *、/、//、% > +、-。同级运算从左到右(但 ** 从右到左)。不确定时用括号,括号最优先:

示例代码(可运行)
预测输出
print((2 + 3) * 2 ** 2)

类型转换

int() 和 float() 可以在整数和浮点数之间转换:

示例代码(可运行)
🚫int() 不是四舍五入

int(3.9) 的结果是 3,不是 4!int() 直接截断小数部分。如果需要四舍五入,用 round(3.9) = 4。

找 Bug计算总价用乘法 *,别用加法 +。
price = 9.9 count = 3 total = price + count print(total)
填空题填写空白处的代码
a = 17 print(a // 5) # 输出 print(a % 5) # 输出
选择题

10 / 3 的结果类型是什么?

浮点数原理

为什么 0.1 + 0.2 ≠ 0.3?

这不是 Python 的 bug,而是所有使用 IEEE 754 浮点数标准的语言(Java、C++、JavaScript 等)共有的问题。

原因计算机用二进制存小数。十进制的 0.1 转成二进制是无限循环小数 0.0001100110011...,跟十进制没法精确表示 1/3 是一个道理。计算机只能截断了存,所以 0.1 在内存里实际是 0.1000000000000000055...

示例代码(可运行)

解决方案:

比较浮点数用容差:abs(a - b) < 1e-9

金融场景用 decimal.Decimal(精确十进制)

用 fractions.Fraction 做精确分数运算

示例代码(可运行)
🐍工程实践

整数「分」方案的关键是:定价、数量、小计这些中间步骤全程用整数算,只在最后展示给用户时才除以 100,保证中途没有任何一步碰到浮点数。

选择题

print(7 / 2) 的输出是?

选择题

print(5 // 2) 的输出是?

选择题

print(2 ** 10) 的输出是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

Python 里整数、字符串甚至函数都是对象,堆在内存里;变量不是装东西的盒子,而是一张贴在对象上的「名字标签」(引用)。id(x) 看对象身份,is 比身份、== 比值。CPython 会缓存 -5~256 的小整数,所以 a=1;b=1 时 a is b 为 True,但 a=300;b=300 未必。结论:判断值是否相等永远用 ==,判断是不是 None 才用 is。

挑战任务

圆面积计算器

简单+50 XP

计算半径为 5 的圆的面积(π 取 3.14),输出结果。

圆面积计算器
2 个测试用例

课后作业

温度转换

中等+25 XP

将摄氏 37 度转为华氏度(F = C × 9/5 + 32)。

温度转换
1 个测试用例