TheZTHEZ / UNDERSTANDING FIRST
编程起步入门20 分钟阅读

从解决步骤到第一段程序

把一项现实任务拆成明确步骤,认识算法、解释器与执行顺序,建立预测再运行的学习方法。

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

学习目标

能够把“检查学习时间是否达标”写成明确的输入、判断和输出;区分算法描述与 Python 实现;用程序实际顺序解释一个分支为什么执行。你不需要背完所有关键字。

必要的前置知识

知道数据是被处理的内容,程序是明确步骤;认识整数、变量名与 print。如果仍把等号理解为永远成立的数学方程,先回看上一课的重新计算例子。

概念解释

算法是一组解决问题的明确步骤,并不限于某种编程语言。程序是把这些步骤用具体语言表达出来,还必须符合该语言的语法和运行环境。本课的规则是:总分钟达到 100 就显示“已达标”,否则显示“继续积累”。“达到”必须写清包含等于,否则 100 恰好落在哪里就不明确。

先用自然语言写步骤:取得每天分钟和天数 → 计算总分钟 → 比较总分钟与目标 → 输出一个结果。再翻译为 Python。if 不是“如果大概不错”,而是对一个表达式求真值。缩进说明哪些步骤属于这个分支。

生活化类比

像按导航走路:先到路口,再依据“目的地在左侧吗”选一条路。选了左边,不会紧接着再把右边也走一遍。对应的 if / else 一次选择一个分支;两个独立 if 则是两个检查点。导航的比喻只说明选择结构,不能替代对实际条件的检查。

原理示意图

取得数据 → 计算总量 → 判断 total >= target → 真:显示“已达标”;假:显示“继续积累” → 分支汇合 → 显示“检查结束”。

下方交互中的条件状态会明确显示 True 或 False。它不会同时点亮两条互斥分支,也不会把没有执行的代码假装执行过。

完整代码示例

minutes = 25
days = 4
total = minutes * days
target = 100
if total >= target:
    print("已达标")
else:
    print("继续积累")
print("检查结束")

逐行代码讲解

  1. 第 1–2 行提供本次问题的输入:每天 25 分钟,持续 4 天。
  2. 第 3 行计算总分钟 100。结果在这里被保存,而不是等到 print 时才计算。
  3. 第 4 行把目标明确写为 100,便于修改。
  4. 第 5 行比较 100 是否大于或等于 100,结果为 True。冒号表示接下来有一个代码块。
  5. 第 6 行缩进 4 个空格,是 True 分支的内容,因此会打印。
  6. 第 7–8 行是另一个分支。本次条件为真,所以不会运行第 8 行。
  7. 第 9 行回到最左侧,在分支之后,无论选哪条路径都会执行。

实际运行结果

已达标
检查结束

交互式演示

下方条件示例使用分数与及格线。把参数设为 5、6、7,分数分别成为 50、60、70。每次先写下预测的 True / False,再点击下一步核对。按上一步可以查看当时的状态,不会重新偷偷执行一次程序。

常见错误分析

  • 漏掉冒号是语法结构问题,不是 Python “不够智能”。运行前就需要先解析出合法结构。
  • 把最后的 print 缩进到 else 内,它就变成仅在未达标时执行。空格是程序结构的一部分。
  • 为让结果通过测试而随意修改数字。先确认规则是否正确,再检查实现是否遵守规则。
  • 本模型不支持某语法,不代表 Python 不支持。理解引擎会区分语言错误和自身范围限制。

分层练习

基础: 把每天分钟改成 20,保持 4 天,预测两行输出。

应用: 目标改为 120。分别测试 total 为 119、120、121 的情况,为什么这三个输入值得检查?

迁移: 假设规则变为“严格超过目标才达标”,应该改数字还是运算符?解释为什么。

答案与详细解析

基础题输出“继续积累”和“检查结束”,因为总量 80 小于 100。

target = 120
for total in [119, 120, 121]:
    if total >= target:
        print(total, "已达标")
    else:
        print(total, "继续积累")

这里的循环用于一次验证三个边界输入,后续课程会专门解释。输出依次为 119 继续积累、120 已达标、121 已达标。边界附近最容易暴露 > 与 >= 混淆。迁移题应把比较改成 >,保持目标仍为 120;把目标悄悄改大可能掩盖需求含义,并且不适用于所有数据类型。

延伸学习资源

下一课学习读懂错误,学会验证。正式语法可对照 Python 官方教程:控制流,先阅读其中的 if 部分,不必提前掌握全部内容。

换个角度理解

像按分数选择一个通道:先看是否达到 90,再看是否达到 60,否则去补练区。进入一个通道后,不再逐一走后面的通道。两个独立 if 则像两个独立检查点。

STEP 01计算条件真值
STEP 02只进入命中的分支
STEP 03分支后继续

把不同情况的处理规则写清楚。顺序会改变结果:分数区间通常应从严格条件开始,否则宽条件会提前接住输入。

动手观察:一步一步执行

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

EXECUTION / 可操作的程序状态

把每一步,看明白

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

变量与作用域

输出

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

CHECK YOUR UNDERSTANDING

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

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

基础 score = 60;条件 score >= 60 是?

应用 if / elif / else 一次最多进入几个分支?

迁移 非空字符串 "False" 的真值是?

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

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

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

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

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