我决定看一下python。我发现this book开始阅读它并从中做了一些练习。现在我被困在第6章,正是here。 对不起,我的新手问题,但这个测试() - 来自哪里?
def mysum(xs):
""" Sum all the numbers in the list xs, and return the total. """
running_total = 0
for x in xs:
running_total = running_total + x
return running_total
#add tests like these to your test suite ...
test(mysum([1, 2, 3, 4]), 10)
test(mysum([1.25, 2.5, 1.75]), 5.5)
test(mysum([1, -2, 3]), 2)
test(mysum([ ]), 0)
test(mysum(range(11)), 55) # Remember that 11 is not in the list that range generates.
我似乎无法找到它,而且它在本书前面从未提及过。我只找到了一个名为test的模块。现在我有点困惑,我错过了什么吗?本书的一个版本也适用于Python 2.x,它在第6章中没有使用这个功能.... 请指教新手,再次抱歉这个奇怪的问题。
答案 0 :(得分:2)
它在链接章节的Section 6.7中。
def test(actual, expected):
""" Compare the actual to the expected value,
and print a suitable message.
"""
import sys
linenum = sys._getframe(1).f_lineno # get the caller's line number.
if (expected == actual):
msg = "Test on line {0} passed.".format(linenum)
else:
msg = ("Test on line {0} failed. Expected '{1}', but got '{2}'."
. format(linenum, expected, actual))
print(msg)
答案 1 :(得分:1)
第12章[词典]中的相同问题。这是另一种解决方法。
def test(expression1, expression2):
if expression1 == expression2:
return 'Pass'
else:
return 'Fail'
这适用于您列出的所有表达式以及第12章[词典]中列出的表达式,特别是练习2。