1.2 数据的计算
知识点
1.什么是"计算"
广义的计算:根据已知数据,按照一定规则,求出结果的过程。它不是"算术"的同义词——排序、查找、判断、统计、加密,都是计算。
计算的三要素:
- 数据(输入);
- 规则/方法(怎么算,即算法);
- 结果(输出)。
同一组数据,方法不同,结果与效率可能不同——这正是本单元后续要学"算法"的原因。
2.三种计算方式对比(本小节核心表)
| 方式 | 工具 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 人工计算 | 纸笔、心算 | 灵活、无需设备、能处理模糊判断 | 速度慢、易出错、难以重复、数据量大时不可行 | 数据量小、临时的简单计算 |
| 借助工具计算 | 计算器、电子表格、统计软件 | 比人工快得多、有现成函数、结果直观 | 需人工操作每一步、规则变化时要重新设置、处理超大数据吃力 | 中小规模数据处理、报表统计 |
| 程序自动计算 | 编程语言(Python 等) | 速度极快、可批量、可重复、规则可复用、能处理海量数据 | 需要会编程、前期投入大、调试成本高 | 大规模、重复性、规则明确的计算 |
结论(答题落点):随着数据量增大、规则变复杂、需要重复执行,计算方式必然从"人工"走向"工具"再走向"程序"——这就是"数据与计算"的演进逻辑。
一句话记忆:人算不如表算,表算不如程序算;但程序要先"人想清楚"。
3.借助工具计算:电子表格的公式与函数
电子表格(Excel/WPS 表格)是最常用的"工具计算"载体,其核心是公式与函数。
(1)公式的三条铁律
- 必须以等号
=开头,否则会被当成文本; - 公式中引用单元格地址(如
A1、B2:C10),而不是直接写数字——源数据一变,结果自动更新; - 运算符号用
+ - * / ^,括号用英文半角圆括号( ),可多层嵌套。
(2)常用函数(必背)
| 函数 | 作用 | 示例 | 说明 |
|---|---|---|---|
| SUM | 求和 | =SUM(B2:B41) | 统计总分、总销量 |
| AVERAGE | 求平均值 | =AVERAGE(B2:B41) | 注意与"总分÷人数"一致 |
| MAX / MIN | 求最大/最小值 | =MAX(B2:B41) | 找最高分、最低分 |
| COUNT | 统计数值单元格个数 | =COUNT(B2:B41) | 只数数字,不数文本 |
| COUNTA | 统计非空单元格个数 | =COUNTA(A2:A41) | 数"有多少人"更合适 |
| COUNTIF | 按条件计数 | =COUNTIF(C2:C41,">=90") | 统计 90 分以上人数 |
| SUMIF | 按条件求和 | =SUMIF(A2:A41,"一班",B2:B41) | 统计一班总分 |
| IF | 条件判断 | =IF(B2>=60,"及格","不及格") | 三个参数:条件、真值、假值 |
| RANK | 排名 | =RANK(B2,$B$2:$B$41) | 注意区域要用绝对引用 |
记忆要点:COUNT 数"数字",COUNTA 数"非空"——这是最容易错的一对。
(3)相对引用与绝对引用(高频考点)
| 引用形式 | 写法 | 填充公式时的行为 | 用途 |
|---|---|---|---|
| 相对引用 | A1 | 行列随位置自动偏移 | 逐行逐列复制公式 |
| 绝对引用 | $A$1 | 行列都固定不变 | 引用固定区域(如排名区域、税率单元格) |
| 混合引用 | $A1(列固定)或 A$1(行固定) | 只固定一部分 | 九九乘法表、二维表填充 |
判断技巧:看 $ 号——$ 在谁前面就锁住谁;两个 $ 全锁,没有 $ 全动。
典型错误:用 RANK 排序后下拉,区域跟着下移,导致排名全错——必须写成 $B$2:$B$41。
(4)其他常用操作
- 填充柄(单元格右下角小黑方块):拖拽复制公式或序列(如 1、2、3 或 星期一至星期日);
- 排序与筛选:按某列升/降序排列,或按条件显示部分记录;
- 分类汇总:先按分类字段排序,再汇总(求和、计数、平均);
- 数据透视表:多维交叉统计,快速完成"按班级×科目"的汇总;
- 图表:选中数据区域后插入柱形图、折线图、饼图(图表选用见 1.1 第 8 点)。
4.程序自动计算:计算机为什么"算得快"
计算机的计算特点(四条):
| 特点 | 说明 | 注意 |
|---|---|---|
| 运算速度极快 | 每秒可完成上亿次乃至更高的运算 | 人无法比拟 |
| 计算精度高 | 可处理很长位数的数值 | 但浮点数存在误差(见下) |
| 可存储与记忆 | 数据与中间结果放在内存/外存中 | 断电后内存数据丢失 |
| 可自动连续执行 | 按程序不知疲倦地重复,不会"走神" | 前提是程序正确 |
必须知道的一个"反常识":计算机并不是绝对精确的。
print(0.1 + 0.2) # 输出 0.30000000000000004
print(0.1 + 0.2 == 0.3) # 输出 False
原因:计算机用二进制浮点数存储小数,很多十进制小数(如 0.1)无法用有限位二进制精确表示,只能近似。这叫浮点误差。
应对办法:
- 判断两个浮点数是否相等时,用差值小于一个很小的数来判断,如
abs(a - b) < 1e-9; - 涉及金额等需要精确的场合,先换算成整数(分)再算,或用
decimal模块; - 输出时用
round(x, 2)控制显示位数(注意:只是显示,不改变存储值)。
5.用计算机解决问题的一般过程(四步,必背)
① 分析问题 → ② 设计算法 → ③ 编写程序 → ④ 调试运行
| 步骤 | 做什么 | 关键动作 |
|---|---|---|
| ① 分析问题 | 明确已知什么、要求什么、有什么约束 | 弄清输入与输出,界定问题边界 |
| ② 设计算法 | 设计解决问题的步骤与方法 | 用自然语言、流程图或伪代码描述;考虑是否可行、是否高效 |
| ③ 编写程序 | 用程序设计语言把算法翻译成代码 | 选择合适的数据类型与控制结构 |
| ④ 调试运行 | 运行、发现错误、修改、验证结果 | 用测试数据(含边界值)验证;出错看错误提示 |
常见误区(务必强调):
- 跳过①②直接写代码——写到一半发现思路不通,返工;
- 只测"正常数据"——不测 0、负数、空值、极大值等边界情况;
- 把"运行通过"当成"结果正确"——程序可能算错但不报错。
四步与后续单元的对应:②设计算法 → 第 4 单元;③编写程序 → 第 2 单元(Python)。
6.计算思维(本单元的思想落点)
定义:计算思维是运用计算机科学的基本概念与方法,去求解问题、设计系统和理解人类行为的思维活动。
四个要素(常考):
| 要素 | 含义 | 举例 |
|---|---|---|
| 抽象(Abstraction) | 忽略细节,抓住本质特征 | 把"学生"抽象成"学号、姓名、成绩"三个字段 |
| 分解(Decomposition) | 把大问题拆成若干小问题 | 成绩管理拆成录入、统计、排序、输出 |
| 模式识别(Pattern Recognition) | 找出问题的共同规律 | 发现"求总分""求平均"都是"遍历累加" |
| 算法设计(Algorithm Design) | 设计可执行的步骤 | 用循环+判断实现分级统计 |
一句话:计算思维不是"会编程",而是"会把问题想成计算机能执行的样子"。
7.数据、计算与生活
- 导航:实时路况 + 最短路径算法 → 推荐路线;
- 推荐系统:用户行为数据 + 相似度计算 → "猜你喜欢";
- 成绩分析:考试数据 + 统计计算 → 班级薄弱知识点;
- 科学计算:气象数值模拟、基因测序、航天轨道计算。
共同点:数据是原料,计算是加工,算法是工艺,结果是产品。
8.速查表
| 序号 | 考点 | 结论 |
|---|---|---|
| 1 | 计算的含义 | 按规则处理数据得到结果 |
| 2 | 三种计算方式 | 人工计算、工具计算、程序计算 |
| 3 | 程序计算的优势 | 快、准、可批量、可重复、规则可复用 |
| 4 | 公式开头 | 必须用 = |
| 5 | SUM/AVERAGE | 求和/求平均 |
| 6 | COUNT 与 COUNTA | COUNT 数数字;COUNTA 数非空 |
| 7 | COUNTIF | 按条件计数 |
| 8 | IF 的三个参数 | 条件、条件成立时的值、条件不成立时的值 |
| 9 | 相对引用 | A1,随填充自动偏移 |
| 10 | 绝对引用 | $A$1,行列都不变 |
| 11 | $ 的口诀 | $ 在谁前面就锁住谁 |
| 12 | RANK 的坑 | 排名区域必须绝对引用 |
| 13 | 计算机四特点 | 速度快、精度高、可存储、可自动执行 |
| 14 | 浮点误差 | 0.1+0.2 != 0.3;比较用差值小于 1e-9 |
| 15 | 解决问题四步 | 分析问题 → 设计算法 → 编写程序 → 调试运行 |
| 16 | 调试要用 | 正常数据 + 边界数据 |
| 17 | 计算思维四要素 | 抽象、分解、模式识别、算法设计 |
| 18 | 电子表格分类汇总前 | 必须先排序 |
9.课堂提示(讲课参考)
- 三种计算方式用同一个任务串起来:统计全班 40 人的总分与平均分——先让学生手算两人,再用 Excel 一行公式,再用 Python 三行代码,时间差就是最好的说服力。
- 浮点误差现场演示:在 IDLE 里敲
0.1+0.2,学生看到0.30000000000000004会很惊讶,顺势讲"计算机不等于精确"。 - 绝对引用用"排名"演示:故意先让学生写
B2:B41下拉出错,再改成$B$2:$B$41,错误记忆比正确讲解更牢。 - 四步流程配一个"反面案例":直接开写代码导致返工,让学生体会"分析问题"不是走过场。