Discuss / Python / 交作业

交作业

Topic source

抄的

def fact(n):
    '''
    Calculate 1*2*...*n
    >>> fact(1)
    1
    >>> fact(10)
    3628800
    >>> fact(-1)
    Traceback (most recent call last):
        ...
    ValueError
    '''
    if n < 1:
        raise ValueError()
    if n == 1:
        return 1    
    return n * fact(n - 1)

if __name__ == '__main__':
    import doctest
    doctest.testmod()

我是真看不懂这节课的例子(也就是上节课的例子)

bzny虫

#3 Created at ... [Delete] [Delete and Lock User]

doctest就是相当于把测试代码在命令行里一行行敲进去运行,然后看看结果和你预设的是不是一样,这个fact其实就是个阶乘,所以fact(10)那里要写一个10!的结果,fact(-1)那里,看下面的代码,参数小于1抛出ValueError,所以你应该按照异常栈的格式写一个抛出ValueError的结果


  • 1

Reply