第3课 闽南小吃预算器

45分钟 · 14页课件配套 · 每页含讲述、提问、答案与巡视重点。教师参考应在学生独立作答后使用。保持课程包目录完整,离线活动链接才可直接打开。

第03课 · 教师逐页讲稿

第01页 闽南小吃预算器

建议用时 1 分钟

讲述与活动

教师开场:前两课换数据需要改代码,今天把数量、单价和预算交给使用者输入。以模拟闽南小吃采购为情境,说明所有价格只是练习设定。请学生想象家人不会编程,如何仍能用这个程序核对预算。课堂重点不是做复杂界面,而是把输入的文字变成正确的数据,再解释计算结果。
课堂安排:共45分钟。教师精讲,学生在本课离线网页独立操作。课前打开包内本课HTML,无需班级座号登录和联网,提前完成本机Python初始化。绿色下划线文字为对应课程的可点击入口。
本套课件承接第1课,所有插画只作教学情境示意。封面背景使用生成式插画。

提问

让不会改代码的人用预算器,应怎样提供数据?

参考答案

程序给出明确提示,让使用者依次输入数量、单价、预算。

巡视重点

先让学生说输入者的操作,所有价格为模拟数据。

第03课 · 教师逐页讲稿

第02页 输入、计算与输出

建议用时 2 分钟

讲述与活动

提问:使用者输入5,计算机就一定把它当作数字5吗?先收集预测,不急着给结论。今天学生应能指出输入、处理、输出三个区域,解释数量和单价为什么选择不同转换,并保留够用、超预算和刚好用完的证据。教师强调能运行不等于能正确解释,最后需要说明一个负数结果的现实含义。

提问

输入5后,input返回数字还是文字?

参考答案

返回字符串。数量用int转换,金额用float转换,再计算并解释结果。

巡视重点

区分屏幕外观与数据类型,收集原始预测。

第03课 · 教师逐页讲稿

第03页 预算程序的数据约定

建议用时 3 分钟

讲述与活动

教师展示平行例题:买5份,每份3.2元,预算18元。先请学生口算总价16元、余量2元,再区分哪些是提供给程序的数据,哪些由程序计算。不要把总价也要求用户输入,否则程序没有完成核心计算。巡视时让学生指向自己的三个输入,尤其注意预算和单价的顺序,网页会按程序调用input的先后消耗预置输入。

提问

5份、每份3.2元、预算18元,哪些是输入?

参考答案

数量5、单价3.2、预算18是输入;总价16与余量2由程序计算。

巡视重点

不要额外要求用户输入总价;逐行输入顺序与代码对应。

第03课 · 教师逐页讲稿

第04页 input得到的是字符串

建议用时 3 分钟

讲述与活动

先让学生逐行预测。第一行拼接两段文字得到52,第二行将整数字符串转换后相加得到7;加号面对不同数据类型有不同含义。第三、四行接收一次输入并显示类型,键入5后会看到str。说明这段是教师演示,用来观察input,不是网页原程序;学生不用把type加入最终预算器。避免把屏幕上像数字的外观当作数据类型。

提问

"5"+"2"、int("5")+int("2")各是多少?

参考答案

分别52与7;input得到的类型名称为str。

巡视重点

type为教师观察工具,不要求学生加进最终预算器。

第03课 · 教师逐页讲稿

第05页 int与float的用途

建议用时 3 分钟

讲述与活动

教师提问:采购份数可以是5.5份吗?按本课规则数量为非负整数;价格和预算允许小数,因此使用不同转换。int能接收合法整数字符串,却不能直接接收带小数点的字符串。float可以接收整数样式或小数样式的数字文字。强调不要输入元、份、中文句号;本课不要求编写异常处理,输入前先遵守格式。

提问

为什么数量用int、单价和预算用float?

参考答案

份数按非负整数约定,金额可含小数;int("3.2")不能直接转换。

巡视重点

英文小数点;不把“份”“元”填进输入区。

第03课 · 教师逐页讲稿

第06页 一份完整的预算程序

建议用时 3 分钟

讲述与活动

请学生把代码读成三个区域:前三行接收并转换,中间两行计算,末尾两行输出。输入顺序是5、3.2、18,每项独占一行。运行后教师核对总价16.0、余量2.0,解释小数显示不影响金额意义。round仅用于本课结果的近似展示,不保证恰好显示两位小数,也不要把它讲成任意真实财务计算的精确方案。

提问

依次输入5、3.2、18会显示什么?

参考答案

总价16.0,余量2.0。round(...,2)是近似舍入,不保证固定显示两位小数。

巡视重点

输入三行、顺序正确;数值正确与显示格式分开。

第03课 · 教师逐页讲稿

第07页 预算余量的正、零、负

建议用时 2 分钟

讲述与活动

教师逐行询问预算减总价的方向。预期学生说出正数是剩余预算,零是刚好用完,负数表示超支的大小。将负3解释为超支3元,而不是还剩3元,更不是一定写错代码。邀请学生选一行反算,总价加余量应该回到预算。这里使用新的教师例子,不直接投影网页测验原题的计算答案。

提问

余量为2、0、-3分别说明什么?

参考答案

还剩2元、刚好用完、超预算3元。负数本身不表示程序出错。

巡视重点

核对减法方向;可用总价+余量=预算反查。

第03课 · 教师逐页讲稿

第08页 5个小步

建议用时 8 分钟

讲述与活动

学生打开第3课学习页,按顺序完成输入类型、整数转换、小数转换、数量加一、金额乘法五小步。前3步用3分钟,后2步用5分钟。巡视时先问变量当前存的是文字还是数字,再讨论运算。出现报错让学生指出行号和输入格式,必要时看提示;不要由教师直接填入函数名或替学生运行。

提问

报错或结果像拼接文字时先检查什么?

参考答案

变量当前类型和输入格式,再检查计算。五小步答案见教师参考。

巡视重点

前3步辨类型,后2步实际改代码运行;提示不能代替学生操作。

教师参考

输入先是文字:字符串
解释:input返回字符串,输入看起来像数字,也需要根据用途选择转换。
数量转成整数:int
解释:int把合法的整数输入从文字转成整数,之后可以参与加减乘除。
小数金额怎样转:float("2.5")
解释:float("2.5")得到小数2.5,适合本课允许小数的金额。
数量加一份:count = int(input())
print(count + 1)
预期输出:4
解释:先用int得到整数3,再加1,所以输出4。
算两份小吃的钱:price = float(input())
print(price * 2)
预期输出:5.0
解释:float接收单价2.5;2.5 * 2得到5.0,表示两份共5元。
第03课 · 教师逐页讲稿

第09页 小吃预算程序

建议用时 8 分钟

讲述与活动

进入本课离线网页第3课练习,保留cups、price、budget、total、left等约定变量名。按网页给定三组采购数据逐组填写输入区,注意三行顺序与input一致,运行前写预测。完成后执行程序检测,保留一组超预算结果并解释含义。巡视常见问题是所有数据挤在一行、把预算放在单价前,或加入中文单位;先修输入再判断计算是否错。 程序检测同时核对结果变量和数字输出;按示例顺序输出总价、预算余量。可修改标签、添加说明或额外数据,仍须保留这些目标结果的输出与先后顺序。

提问

原题三组输入怎样逐组核对?

参考答案

先按数量、单价、预算顺序逐行输入,记录总价、余量和含义;具体样例见教师参考。

巡视重点

常见问题为数据挤一行、顺序颠倒、夹单位;先修输入再看公式。

教师参考

输入(逐行):3 / 4.5 / 20;输出:总价 13.5 元
预算余量 6.5 元
输入(逐行):2 / 8 / 20;输出:总价 16.0 元
预算余量 4.0 元
输入(逐行):4 / 6 / 20;输出:总价 24.0 元
预算余量 -4.0 元
第03课 · 教师逐页讲稿

第10页 输入与类型的常见错误

建议用时 2 分钟

讲述与活动

教师展示两类故障但不要求学生学习异常处理。左侧格式错误会阻止转换,先检查数字和小数点;右侧程序也许能运行,但语义错误,例如把文字重复当作乘法。请学生说出最小验证例子:"6"乘2得到"66",而整数6乘2得到12。强调报错有时能定位问题,但没有报错并不能证明结果正确。

提问

"6"*2为什么不能当作金额乘法?

参考答案

它重复字符串得到66;整数6*2才得12。int("3.2")与float("3.2元")均会报错。

巡视重点

没报错不代表意义正确,要求给出最小验证例子。

第03课 · 教师逐页讲稿

第11页 零数量与恰好够用

建议用时 2 分钟

讲述与活动

请学生自主补测数量0、总价恰好等于预算两种情况。预期数量0时总价0,余量等于预算;刚好用完时余量0。让学生说明这些是规则范围内的合法边界。负数量不符合本课前提,不要求今天自动拒绝。另请一名学生指出输入3.2和输入3.2元的区别,以确认他们理解“数字文字”和单位说明的位置。

提问

数量为0,或刚好用完预算,输出应怎样?

参考答案

数量0时总价0、余量等于预算;刚好用完时余量0。

巡视重点

0是合法边界;负数量不在本课规则中,不额外要求异常处理。

第03课 · 教师逐页讲稿

第12页 迁移:自选采购预算

建议用时 2 分钟

讲述与活动

完成者把情境改成班级文具采购或另一种闽南小吃,只修改提示语与数据,仍保留检测约定的变量名。请同伴按提示输入,观察能否不问作者就正确使用。要求至少一组够用和一组不足,并说明公式是否仍然成立。可课后探索UTF-8实验,但编码与类型转换不是文字理解,不能把完成预算器说成实现了人工智能。

提问

怎样检验提示语是否足够清楚?

参考答案

让同伴不询问作者,按提示输入一组够用和一组不足的数据并解释输出。

巡视重点

保留原题检测约定变量;输出加单位,输入只写数字。

第03课 · 教师逐页讲稿

第13页 知识检测与自评

建议用时 4 分钟

讲述与活动

安排2分钟独立做网页测一测,再用2分钟整理证据与自评。教师不展示原题答案,只提醒遇到类型问题可以回到最小代码验证。请学生给自己的预算器标出输入、计算、输出三段,并从三组记录中选一组写解释。自评不是只勾选“会了”,还要能说出数量与金额转换选择的理由以及负余量代表什么。

提问

三组记录之外还要解释什么?

参考答案

标出输入、计算、输出,说明转换类型的理由和一组负余量的含义。

巡视重点

独立测验后订正,实际证据与自评一致;导出JSON和代码。

教师参考

知识题1:13.5元和6.5元。总价是3×4.5=13.5,余量是20-13.5=6.5。
知识题2:cups = int(input("数量:"))。input先返回文字,int再把本题合法的整数输入转换为整数。
知识题3:已超预算4元。总价为24元,超过20元预算4元,所以余量是-4。
第03课 · 教师逐页讲稿

第14页 输入类型决定计算方式

建议用时 2 分钟

讲述与活动

请学生用一句话回答开场问题:输入框里的5首先是字符串,是否转换以及转换成什么由用途决定。再邀请一人解释为什么负余量可以是正确结果,其他同学补充一组证据。归纳本课的输入格式、转换、公式和语义核验四个关注点。预告下课将让程序自己根据条件作选择,为预算不足等情况输出更直接的提示。

提问

负余量是否一定说明程序错了?

参考答案

不是。它可能准确表示超预算,需结合输入和budget-total核验。

巡视重点

让学生引用一组实际数据,预告下课用if自动给出提示。