test() - python中的函数?预订“如何像计算机科学家一样思考”

时间:2011-08-02 13:43:02

标签: python python-3.x

我决定看一下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章中没有使用这个功能.... 请指教新手,再次抱歉这个奇怪的问题。

2 个答案:

答案 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。