给出以下代码:
def slope(x1, y1, x2, y2):
"""
>>> slope(5, 3, 4, 2)
1.0
>>> slope(1, 2, 3, 2)
0.0
>>> slope(1, 2, 3, 3)
0.5
>>> slope(2, 4, 1, 2)
2.0
"""
xa = float (x1)
xb = float (x2)
ya = float (y1)
yb = float (y2)
return (ya-yb)/(xa-xb)
if name_ == '__main__':
import doctest
doctest.testmod()
Run Code Online (Sandbox Code Playgroud)
第二个doctest失败了:
Failed example:
slope(1, 2, 3, 2)
Expected:
0.0
Got:
-0.0
Run Code Online (Sandbox Code Playgroud)
但是,我们都知道-0.0 == 0.0.doctest是否正在进行字符串比较以检查结果?为什么第二次测试失败?
因为它没有文档测试做字符串比较.它仅检查输出是否与在Python交互式解释器中执行代码时输出的输出相同:
>>> 0 / -2
-0.0
Run Code Online (Sandbox Code Playgroud)
编辑::链接引用由丹尼尔·路易斯列出了对一些更多的提示是如何工作的,以及你如何能够影响这种行为.
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |