开始之前
上一课把输入转换成了可以计算的数字。这一课继续回答两个问题:Python 如何描述计算,以及怎样把计算结果放进一段容易阅读的文字。
我们先把加减乘除这些符号正式称为 Operator,再理解它们如何与值和变量组成 Expression,最后使用 Formatted string 输出结果。
概念 01
Operator 把值和变量组成 Expression
从商品总价到实验换算,程序中的计算都需要运算符和表达式来说明“用哪些数据、进行什么操作”。
Operator 的英文全称是 Operator,中文叫运算符。它是让 Python 对值执行计算的符号:+ 是 addition operator(加法运算符),- 是 subtraction operator(减法运算符),* 是 multiplication operator(乘法运算符),/ 是 division operator(除法运算符)。
运算符会根据数据类型执行相应操作:数字 2 + 3 得到 5,而字符串 "Py" + "thon" 得到新字符串 "Python"。同一个 + 面对数字时执行加法,面对两个字符串时执行文字连接;str 和数字不能直接用 + 配合。
Python 的普通除法 / 通常产生 float,例如 5 / 2 得到 2.5。int 和 float 混合计算时,结果通常也会成为 float,例如 5 + 2.5 得到 7.5。这里先理解结果类型,不展开浮点精度等更复杂的问题。
基础运算顺序只需要先记三层:先算括号,再算乘法和除法,最后算加法和减法。因此 2 + 3 * 4 得到 14,而 (2 + 3) * 4 得到 20。括号可以明确告诉 Python 哪一部分先计算。
Expression 的英文全称是 Expression,中文叫表达式。Expression 是由 values(值)、variables(变量)和 operators(运算符)组成,并且运行后会产生一个结果的代码组合。price * quantity 就是一个 expression。
值是程序正在处理的具体数据,例如 5;变量是保存值的名字,例如 price;运算符说明如何处理它们。measurement * factor 可以计算实验换算结果,distance / time 可以计算单位时间的距离。
- Operator:执行计算的符号
- 同一个 + 会根据数字或字符串执行不同操作
- / 通常产生 float
- 顺序:括号 → 乘除 → 加减
- Expression:运行后会产生结果的代码组合
比较数据类型与运算顺序
前四行比较 +、/ 和混合数字类型;后两行说明 * 会先计算,而括号可以改变计算顺序。每一行都是运行后产生结果的 Expression。
点击“运行”后,程序输出会显示在这里。
概念 02
Formatted string 把变量值插入文字
只有数字 30 往往缺少上下文;格式化字符串可以同时说明这个数字代表什么,让输出更适合真实记录和交流。
Formatted string 的英文全称是 Formatted string,中文叫格式化字符串。Python 通常写成 f"...",简称 f-string;开头的 f 代表 formatted,告诉 Python 这段字符串里有需要替换的内容。引号仍然表示这是一段字符串。
在 message = f"Hello {name}" 中,花括号 {} 标记需要插入变量值的位置,{name} 会被 Python 替换成变量 name 当前保存的值。如果 name 保存 "Amy",message 就是字符串 "Hello Amy"。替换完成后的 f-string 仍然属于 str。
f-string 适合生成包含动态信息的文字,例如学生姓名、计算结果和实验记录。变量变化时,不需要重写整句话,Python 会在运行时放入最新值。
综合来看:先创建变量保存 price 和 quantity,再用 Operator * 组成 Expression price * quantity,Python 得到 total,最后用 f-string 把 total 放进有说明的输出。
- Formatted string / f-string:包含动态值的字符串
- f 代表 formatted
- {变量名} 会被替换为变量当前的值
- f-string 让输出同时包含说明和结果
把计算结果放进完整消息
程序先保存数据,再用 * 组成 price * quantity 并得到 30,最后由 f-string 把 total 的值插入 Total price: 后面。
点击“运行”后,程序输出会显示在这里。
常见错误
这些写法为什么不工作
错误不是失败,而是 Python 告诉你“这部分我无法理解”。先找到差异,再一次只改一个问题。
忘记在字符串前写 f
没有 f 时,Python 会把 {total} 当成普通文字;写成 f"..." 后,花括号中的变量才会被替换成当前值。
total = 30
print("Total: {total}")total = 30
print(f"Total: {total}")引导修改
把每天距离扩展成完整旅行记录
这不是正式练习。跟着步骤修改已有代码,观察每次改变如何影响程序。
- 1先运行代码,确认 distance_per_day * days 会得到总距离。
- 2把 days 从 3 改成 4,观察 total_distance 如何跟着变化。
- 3修改 f-string,让输出变成 Total distance: 50.0 km,并保留计算得到的变量值。
完成后:修改后输出 Total distance: 50.0 km;结果来自 expression,而不是手动写进字符串。
修改这段代码
先运行,再按左侧步骤逐项修改。你的草稿会保存在这个浏览器中。
点击“运行”后,程序输出会显示在这里。
正式练习
现在独立完成 2 道练习
先运行代码观察问题,再点击“检查答案”。检查只关心题目要求的结果,不要求你照抄参考写法。
正式练习
计算实验测量结果
编写实验换算程序。先使用 input("Measurement: ") 和 input("Factor: ") 接收两个动态输入,分别保存到 measurement_text 和 factor_text;再使用 float() 把它们转换后保存到 measurement 和 factor。使用 * 组成 expression,把计算结果保存到 scaled_result,最后必须使用包含变量插值的 f-string 输出 Scaled result: {scaled_result}。必须使用这些指定变量名,不要使用商品价格场景。
点击“运行”后,程序输出会显示在这里。
需要一点提示?
先自己尝试一次;卡住时再逐级打开提示。
本课总结
本课小结
- 1Operator 是执行计算的符号,Expression 是运行后会产生结果的代码组合。
- 2值、变量和运算符可以组成表达式,例如 measurement * factor。
- 3Formatted string 又叫 f-string;f 代表 formatted,{变量名} 会被替换成变量当前的值。