You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么使用assert调用自定义lol函数时没有任何输出返回?

问题原因

assert是Python内置的断言校验语句,核心作用是判断表达式的布尔值:

  • 当传入的表达式结果为真值(非0、非空、非False等)时,assert不会产生任何输出,程序直接继续执行
  • 只有当表达式结果为假值时,assert才会抛出AssertionError,并打印你自定义的错误信息

你直接写assert(lol(n))时,只要lol(n)的返回值不是假值,就不会有任何输出,属于正常行为。

解决方法

assert本身没有输出结果的设计定位,如果你需要同时完成「校验函数输出」+「输出返回结果」的需求,可以参考以下写法:

1. 校验通过后打印结果

先把函数返回值存到变量,断言校验通过后手动执行打印:

# 先定义你预期的正确返回值,以n=10为例
expected = ([1], [[1, 2], [2, 3, 5], [5, 7, 10, 15], [15, 20, 27, 37, 52], [52, 67, 87, 114, 151, 203], [203, 255, 322, 409, 523, 674, 877], [877, 1080, 1335, 1657, 2066, 2589, 3263, 4140], [4140, 5017, 6097, 7432, 9089, 11155, 13744, 17007, 21147], [21147, 25287, 30304, 36401, 43833, 52922, 64077, 77821, 94828, 115975]])
result = lol(n=10)
# 断言校验结果是否符合预期
assert result == expected, f"结果不符合预期,实际输出为{result}"
# 校验通过后打印结果
print(result)

2. 校验失败时输出实际结果

如果只需要在断言不通过时打印返回值,直接把返回值写到断言的错误信息位即可:

expected = 你预期的返回值
assert lol(n=10) == expected, f"函数执行结果不符合预期,实际返回:{lol(n=10)}"

内容的提问来源于stack exchange,提问作者Bruffff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:36:01