答案页 · 12 道题

Python assert 测试练习答案

本页汇总 Python assert 测试 的 12 道练习。先做练习页,再回到这里核对准确答案和原因。

快速答案

本答案页包含 Python assert 测试 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。

答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。

01 · 选择题

assert 条件为假时会发生什么?

  1. Python 以状态码 0 退出
  2. 跳过这个条件
  3. 抛出 AssertionError正确答案
  4. 程序打印 False

答案: 抛出 AssertionError

为什么: 断言失败会抛出 AssertionError。

02 · 选择题

assert x == 3, 'x should be 3' 中逗号后面的部分是什么?

  1. 预期类型
  2. 第二个条件
  3. 附加在失败上的消息正确答案
  4. 仅作注释

答案: 附加在失败上的消息

为什么: 第二个表达式会成为 AssertionError 的消息。

03 · 选择题

用 -O 运行 Python 会对 assert 语句做什么?

  1. 运行两次
  2. 把它们变成 print 调用
  3. 移除它们正确答案
  4. 让它们抛出 TypeError

答案: 移除它们

为什么: -O 参数会移除 assert,所以不能用它做安全检查。

04 · 选择题

assert 适合用在哪里?

  1. 校验密码表单
  2. 处理网络错误
  3. 面向用户的错误提示
  4. 测试和内部不变量正确答案

答案: 测试和内部不变量

为什么: 断言用于记录假设,不是用户输入校验机制。

05 · 填空题

补全检查求和的语句。

total = 2 + 2
____ total == 4
print("ok")

答案: assert

为什么: 关键字 assert 开始这个检查。

06 · 填空题

补全消息中的预期值。

total = 2 + 2
assert total == 4, "total should be ____"

答案: 6

为什么: 消息应说明预期的总和。

07 · 填空题

补全异常类型。

try:
    assert False
except ____ as error:
    print("caught")

答案: AssertionError

为什么: 断言失败会抛出 AssertionError。

08 · 填空题

补全预期的平方值。

def square(n):
    return n * n
assert square(3) == ____
print("ok")

答案: 9

为什么: 三的平方是九。

09 · 输出预测

这段代码会输出什么?

assert 2 + 2 == 4
print("ok")

答案: ok

为什么: 断言通过,所以下一行会执行。

10 · 输出预测

运行结果是什么?

def f(n):
    return n * 2
assert f(3) == 6
print(f(3))

答案: 6

为什么: 函数返回六,断言通过。

11 · 输出预测

这段程序打印出什么?

try:
    assert False, "bad"
except AssertionError as error:
    print(error)

答案: bad

为什么: 逗号后的消息会成为异常文本。

12 · 输出预测

代码的输出结果是什么?

assert isinstance("x", str)
print("str")

答案: str

为什么: 字符串通过 isinstance 检查,所以会打印 str。

先试一遍题目

打开 Python assert 测试 练习页,用即时反馈回答同样的 12 道题。

练习本课