Discuss / Python / 没看明白,为什么显示测试失败。。

没看明白,为什么显示测试失败。。

Topic source

凡九朵

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

def mul(*numbers):

    s=1

    for n in numbers:

        s = s*n

    return s

#测试

print('mul(5) = ',mul(5))

print('mul(5,6) =',mul(5,6))

print('mul(5,6,7) =',mul(5,6,7))

print('mul(5,6,7,9) =',mul(5,6,7,9))

if mul(5) !=5:

    print('测试失败')

elif mul(5,6) !=30:

    print('测试失败')

elif mul(5,6,7) !=210:

    print('测试失败')

elif mul(5,6,7,9) !=1890:

    print('测试失败')

else:

    try:

        mul()

        print('测试失败')

    except TypeError:

        print('测试成功!')

凡九朵

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

明白了明白了!这下就成功了~

def mul(*numbers):

    if numbers ==(): #注意这2步很重要!!

        raise TypeError('Error') #不传参数,调用mul()的结果是1,mul()应该抛出错误才对!

    s=1

    for n in numbers:

        s = s*n

    return s

#测试

print('mul(5) = ',mul(5))

print('mul(5,6) =',mul(5,6))

print('mul(5,6,7) =',mul(5,6,7))

print('mul(5,6,7,9) =',mul(5,6,7,9))

if mul(5) !=5:

    print('测试失败')

elif mul(5,6) !=30:

    print('测试失败')

elif mul(5,6,7) !=210:

    print('测试失败')

elif mul(5,6,7,9) !=1890:

    print('测试失败')

else:

    try :

        mul()

        print('测试失败')

    except TypeError:

        print('测试成功!')

请教:为什么如果不定义错误类型,mul()返回的是1啊

按我的理解是 因为我们先定义了 sum =1  那() 就是 1*1 就是 返回 1了  哈哈   我也是小白 回答的不知道对不对


  • 1

Reply