TheZTHEZ / UNDERSTANDING FIRST
Python 入门入门16 分钟阅读

运算符:让数据参与计算

掌握基础算术、整除、取余、比较和括号优先级。

在浏览器中练习 →进度只保存在本机。

学习目标

  • 使用 +、-、*、/、//、%、**。
  • 解释 / 与 // 的区别。
  • 用比较得到布尔结果,并用括号表达意图。

概念解释

运算符把已有值组合成新的结果。+、-、*、/ 对数字进行加减乘除。/ 即使整除也返回浮点数;// 进行向下取整的除法,不是对所有数简单截去小数。对于本节使用的非负整数,17 // 5 得到 3,17 % 5 得到余数 2,且 17 = 5 * 3 + 2。

** 表示乘方。比较运算符 ==、!=、<、<=、>、>= 的结果是布尔值。= 是赋值,== 才是比较。逻辑运算 and、or、not 可组合判断;当前先用简单布尔比较建立直觉。

乘方一般先于乘除,乘除先于加减。不要凭视觉猜优先级;用括号表达你想先算什么。例如 (2 + 3) * 4 是 20,而 2 + 3 * 4 是 14。对于复杂表达式,写得清楚比节省几个符号更重要。

完整代码示例

将下面代码完整复制到运行器,先运行原例,再一次只修改一个地方。

minutes = 45
print(17 / 5)
print(17 // 5)
print(17 % 5)
print(2 ** 3)
print((2 + 3) * 4)
print(minutes >= 30)
print(minutes == 60)

逐行代码讲解

  1. 第 1 行定义每天的分钟数。
  2. 第 2 行真除法得到浮点数 3.4。
  3. 第 3 行整除得到 3。
  4. 第 4 行取余得到 2。
  5. 第 5 行计算 2 的 3 次方,得到 8。
  6. 第 6 行先加法,再乘法,得到 20。
  7. 第 7 行检查 45 是否大于等于 30,结果 True。
  8. 第 8 行检查 45 是否等于 60,结果 False;它没有改变 minutes。

实际运行结果

以下输出已在 Python 3 中执行核对。代码和输出分别放在不同区域;不要把输出当作代码。

3.4
3
2
8
20
True
False

常见错误

  • 使用 ^ 表示乘方:Python 中 ^ 是按位异或,乘方用 **。
  • 除数为 0 会产生 ZeroDivisionError,应先检查输入。
  • 负数整除是向下取整,例如 -3 // 2 为 -2;不要把它当成向零截断。

实践练习

125 分钟包含多少整小时,还剩多少分钟?再比较 125 是否达到 120 分钟的目标。用括号写出“先把 8 和 2 相加,再除以 5”。

先独立作答再查看参考。能运行还不够,请解释结果为什么正确。

参考答案

total_minutes = 125
hours = total_minutes // 60
remaining = total_minutes % 60
print(hours, remaining)
print(total_minutes >= 120)
print((8 + 2) / 5)
assert (hours, remaining) == (2, 5)

结果依次为 2 5、True、2.0。整除与取余是拆分时间、分组数量等场景的常用组合。

换个角度理解

像给一件物品贴标签。标签可以移到另一件物品上;另一张写着旧价格的收据,不会因为标签变了就自动改金额。列表可以被多个名字指向,同一列表的修改会被它们共同看到。

STEP 01计算右侧表达式
STEP 02得到一个值 / 对象
STEP 03绑定左侧名称

把输入、中间结果和输出分别命名,可以读懂每一步,也便于检查。total = price * count 比重复写一个魔法数字更容易维护。

动手观察:一步一步执行

这是当前知识点的独立教学示例,不是本课所有 Python 语法的模拟。修改参数、预测结果,再按下一步验证。完整语言练习使用可信代码运行器。

EXECUTION / 可操作的程序状态

把每一步,看明白

本地受限解释器
参数改变所选示例的数值;执行从头开始。

变量与作用域

输出

每步显示该语句求值后的快照;第 0 步尚未执行。条件行显示判断结果,函数调用单独显示进入与返回。自动播放可随时暂停,默认不会启动。

CHECK YOUR UNDERSTANDING

自己判断,才知道哪里没懂

先选答案再核对。答错会提供原因和补学方向,不影响课程完成进度。

基础 x = 3;y = x;x = 5。y 是多少?

应用 a = 2;b = a * 4;a = 3。b 是多少?

迁移 要让 total 跟随新 count 更新,需要什么?

尚未提交练习。知识掌握度和学习进度分别记录。

把你卡住的代码或错误交给理解引擎 →

这一节,你理解到哪里了?

这是你的自我反馈,与练习估计、课程进度分别记录。

本文为TheZ原创教学内容。正文采用 CC BY-NC-SA 4.0,代码采用 MIT 许可。请尊重署名与授权范围。