(四)把修正结果写成可以检查的约定
改成 >= 后,把三个结果留下:
# 修正比较,并用 assert 检查手算结果;断言失败会抛出 AssertionError。
def count_met(minutes, goal):
return sum(value >= goal for value in minutes)
assert count_met([20, 35, 45], 35) == 2
assert count_met([35], 35) == 1
assert count_met([], 35) == 0
print("三个结果一致")生成器依次交出布尔值,sum 把 True 按 1、False 按 0 累加。输出 三个结果一致。这里也可以保留普通循环,重要的是检查的数据和期望结果清楚。
assert 条件, 说明 表示“运行到这里,应能看到这个状态”。它适合测试和开发时检查内部关系。文件中的分钟数不合法,仍用第五章的 if ...: raise RecordError(...) 反馈:python -O 会移除普通断言,输入检查不能依赖它。接下来把断言放进测试函数,由 pytest 收集和显示失败位置。