Discuss / Python / 交作业2019.2.13——有没有更简便的?

交作业2019.2.13——有没有更简便的?

Topic source

别问我为啥保留x,y,因为 以下函数允许计算两个数的乘积

# -*- coding: utf-8 -*-

def product(x, y=1,*args):
    acc=x*y
    for arg in args:
        acc=acc*arg
    return acc

    # 测试
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 
测试成功!

您好,我想问一下在函数调用的时候,Python解释器自动按照参数位置和参数名把对应的参数传进去。那product(5, 6, 7)不应该y就是等于6了吗?

def product(x, *args): sum = 1 for arg in args: sum = sum 星号arg return x 星号 sum


  • 1

Reply