Python 测验¶
用途与规则¶
本页用于检查是否真正理解基础语义,而非只记住语法。先运行代码并写下预测结果,再查看答案;实践题可放在单独脚本中执行。
可运行实践题¶
def unique_even(values: list[int]) -> list[int]:
"""返回升序且不重复的偶数。"""
return sorted({value for value in values if value % 2 == 0})
assert unique_even([3, 2, 2, 4, 1, 6]) == [2, 4, 6]
print("实践题通过")
API 辨析表¶
| 问题 | 应检查的概念 | 常见误区 |
|---|---|---|
| 值还是身份 | == / is |
用 is 比较字符串 |
| 复制还是别名 | 可变对象引用 | 以为赋值会复制 |
| 惰性还是立即 | 生成器/list | 重复消费生成器 |
| 缺失还是假值 | None / 真值 |
把 0 当缺失 |
第二个实践题¶
def parse_positive(text: str) -> int:
value = int(text)
if value <= 0:
raise ValueError("必须为正数")
return value
assert parse_positive("5") == 5
try:
parse_positive("0")
except ValueError:
print("边界检查通过")
实践题应同时覆盖成功与失败路径。只运行 happy path 容易漏掉异常类型、边界值和资源清理问题。
自测题¶
==与is分别比较什么?- 为什么函数默认参数不应使用空列表?
- 生成器相对列表的主要优势和限制是什么?
with如何帮助异常路径释放资源?python -m pip为什么比直接调用pip更可靠?
答案与注意事项¶
答案依次是:值与身份;避免跨调用共享状态;惰性低内存但通常只能消费一次;上下文管理器保证退出清理;它把 pip 绑定到明确解释器。测验通过不等于具备工程能力,还应练习测试、日志、依赖锁定和错误处理。