值普查与类型标签
独立掌握检查(不使用 AI 辅助)。
前置要求
已完成 Day 03 的补救练习;能够从终端启动 Python;复习“先预测、再观察”的方法。
学习目标
使用 repr()、type() 和 bool() 区分在屏幕上看起来相似的值(0、"0"、""、None),并解释为什么文本 "0" 不是数字 0。
操作指引
学习来源:在本活动现有的阅读与练习时段内,参考 Automate the Boring Stuff with Python, 3rd edition 的 Chapter 1; Practice Questions; Appendix B answers,用自己的话解释一处与本地任务的联系。保留现有练习与验收检查;若外部资料无法访问,使用课程自写的解释。必做任务:把下面的代码保存为 census.py。运行之前,先写下每一行输出的预测。然后运行 python3 census.py,记录准确的输出,并与预测进行比较。
for value in [0, "0", "", None]:
print(repr(value), type(value).__name__, bool(value))
print("0" == 0, int("0") == 0)
用一两句话解释:为什么 "0"(文本)和 0(整数)在 repr() 显示、类型和真值上都不同。
选做任务:只有在必做证据完成之后,才在列表中再加入一个你自选的值(例如 0.0 或 "False"),先预测它的那一行,再重新运行。
自主演练与记录
在运行下面的程序之前,预测全部 5 行输出,然后记录准确的输出:
for value in [0, "0", "", None]:
print(repr(value), type(value).__name__, bool(value))
print("0" == 0, int("0") == 0)
最后,解释为什么文本 "0" 不是数字零。
print() 不显示引号,repr() 会显示。非空字符串即使只包含字符 0 也为真;字符串永远不会等于整数。
准确输出:
0 int False
'0' str True
'' str False
None NoneType False
False True
解析:repr() 会给字符串加上引号,所以 "0" 显示为 '0',而整数显示为 0。type(...).__name__ 对 0 是 int,对 "0" 和 "" 是 str,对 None 是 NoneType。bool() 对数字零、空字符串和 None 返回 False,但 "0" 是非空字符串,所以返回 True。最后一行说明 "0" == 0 为 False(str 永远不等于 int);int("0") 把文本转换为数字 0,因此那个比较为 True。
客观知识测验与诊断追踪
请回答以下题目检验掌握情况。提交前请诚实声明你的辅助条件。
print(repr("0"), type("0").__name__, bool("0")) 会输出什么?
"0" 是只有一个字符的字符串:repr() 显示为 '0',类型是 str,任何非空字符串都为真,所以输出是 '0' str True。
repr() 会保留字符串的引号;字符串中只有空字符串为假。
作答应证与历史记录
你的预测记录和观察到的输出包含上面全部 5 行准确内容,并且解释中指出了类型差异(str 与 int)、真值规则(非空字符串为 True),以及需要用 int() 显式转换。记录中需写明必做/选做的边界,并声明未使用 AI 辅助。
权威源资源与权利证明
Automate the Boring Stuff with Python, 3rd edition
对应章节 / 时间戳: Chapter 1; Practice Questions; Appendix B answers
验证版本与日期: Public edition checked 2026-11-01; moving pages may change
Beginner teaching and answer-keyed practice before checking exact semantics in the Python reference; selected chapters only, not the book's entire automation stack.
No prior programming required for Chapter 1; later chapters assume its basic Python concepts.
Use the original localized explanations, exercises and checks already present in this activity; no external account or purchase is required for that fallback.
对比候选资源与选型分析 (2)
Guided Python syntax but assumes programming familiarity; paired with the beginner text rather than used as its replacement.
Lectures and problem sets teach a broader CS1 course; the book offers shorter text-first entry and an answer appendix.
Python Standard Library: Built-in Types
对应章节 / 时间戳: “真值测试”“比较”和“可变序列类型”各节
验证版本与日期: Python 3.12 documentation (verified 2026-10-30)
用于查阅真值、比较、绑定和对象修改行为的规范性参考资料。
Day 03 恢复演练
运行教材中提供的 Python 示例,并查阅已安装解释器的帮助。
对比候选资源与选型分析 (2)
该参考资料更深入地讲解对象语义,超出了表达式层面练习所需的范围;stdtypes 能将内容限定在运算符层面。
以叙述方式介绍相同的运算符;库参考文档则被选为查阅规范签名的资料。
Git User Manual: Recording Changes
对应章节 / 时间戳: 将更改记录到仓库
验证版本与日期: Verified 2026-10-30
用于在安全提交前检查小范围差异的第一手参考资料。
Git 基础知识
在本地使用 git diff 和 git status;理解差异之后再提交。
对比候选资源与选型分析 (2)
提供命令级别的选项参考;选择 Pro Git 章节,是因为它逐步讲解了如何在提交前检查更改。
易于理解的商业教程;对于同样的检查习惯,书籍章节更深入地解释了暂存和索引的语义。