⌨️ 第三章 数值和数据的处理方法
📄 一句话概括

计算机的四则运算和小学算术几乎一样,只多了一个数学课上没有的成员——取余(%),还有一个【除法有两种】的新规矩:真除给小数、整除给商。

📝 本节和前面几节的关系

3-1/3-2 讲数字怎么表示、位怎么运算,这一篇回到人能看懂的层面——算术运算符。回收树莓派课 6-3 的 / 永远返回小数那条规矩,在这里补上【为什么】。

一、五种算术运算符

运算符 名字 例子 结果
+ - * 加减乘 3 + 2 * 4 乘除先算:11
/ 真除 7 / 2 3.5(返回小数)
// 整除(取商) 7 // 2 3(舍掉小数部分)
% 取余 7 % 2 1
** 幂 2 ** 10 1024

取余是被数学课漏掉的好东西——它的日常用途比商还多:判断奇偶(n % 2)、每 N 个换一行(i % 5)、从秒数里算分钟(total % 60)、哈希分桶(3-13 会用到)。

二、两种除法的分工

余数关系一条恒等式:被除数 = 商 x 除数 + 余数(7 = 3x2 + 1)——两种除法合起来才是一支完整铅笔。

三、优先级:不用背表,用常识+括号

乘除高于加减(3 + 2 * 4 = 11);同级别的从左往右算;拿不准就加括号——(3 + 2) * 4 = 20。括号不花钱,bug 花钱。

四、动手 Demo:奇偶判断与拆分钟数

n = 7
print(n % 2 == 0)          # False -> 7 是奇数

total = 500                # 500 秒
print(total // 60, "分", total % 60, "秒")   # 8 分 20 秒

看到什么算成功:输出 False 和 8 分 20 秒。

读结果:500 除以 60,商 8 余 20——// 拿商、% 拿余数,两者拼起来不多不少。判断奇偶那行把【取余】和【比较】接在了一起(比较运算符是 3-5 的主角)。

五、30 秒实验

跑一遍 7 / 2、7 // 2、7.0 // 2 三个表达式:分别得到 3.5、3、3.0。第三行最值得看——连【浮点数整除】也存在,结果是 3.0(小数点在,小数部分没了)。

六、常见误区

  1. 【整数除法的结果一定是整数】——在 C/Java 里对,在 Python 里错:/ 永远返回小数(3.5 而不是 3)。
  2. 【取余只能用在正数上】——错。负数也能取余(Python 里 -7 % 3 = 2,跟 C 的 -1 还不一样)——负数取余各语言规则有差异,别跨语言死记结论。
  3. 【2 ** 10 和 2 * 10 是一回事】——错。** 是幂(1024),* 是乘(20)。
自测三问(点开对答案) 1. **`17 % 5` 和 `17 // 5` 各是多少?** 答:`17 % 5 = 2`(余数)、`17 // 5 = 3`(商),验算 3x5+2=17 成立。 2. **判断一个数能不能被 3 整除的最短写法?** 答:`n % 3 == 0`——余数为零就是整除。 3. **为什么老手爱写 `(a + b) / 2` 时提醒加括号?** 答:不涉及这里优先级陷阱,但任何拿不准的混合运算都该用括号写明意图,防的是读代码的人(和未来的自己)误解。

相关笔记