Discuss / Python / 作业

作业

Topic source

def product(x,*args): 

    for n in args:

        x=x*n

    return x

# 测试
print('product(5) =', product(5))
print('product(5, 6) =', product(5, 6))
print('product(5, 6, 7) =', product(5, 6, 7))
print('product(5, 6, 7, 9) =', product(5, 6, 7, 9))
if product(5) != 5:
    print('测试失败!')
elif product(5, 6) != 30:
    print('测试失败!')
elif product(5, 6, 7) != 210:
    print('测试失败!')
elif product(5, 6, 7, 9) != 1890:
    print('测试失败!')
else:
    try:
        product()
        print('测试失败!')
    except TypeError:
        print('测试成功!')

运行结果:

product(5) = 5 

product(5, 6) = 30 

product(5, 6, 7) = 210 

product(5, 6, 7, 9) = 1890 

测试成功!

老夫007

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

你的方法挺好的,省去参数检查

大神up49731

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

为什么你的代码可以测试成功?x是必须的参数,直接Product()传空不是应该异常才对吗?

def product(*args):    if not args:        raise TypeError('参数为空')    r = 1    for i in args:        r = r * i    return r

AbC1114205

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

楼上,就是因为会异常才测试成功啊


  • 1

Reply