python任意数量参数的函数(填空)

【问题描述】编写一个函数,可以接收任意数量的参数(0-3个)。参数的个数及参数值由用户输入,参数值都是正整数。函数的功能是返回所有参数的乘积,如果实际参数个数为0,返回-1。
【输入形式】一行正整数,以空格分隔。 第一个整数为参数个数,后面的整数为参数值。
【输出形式】一个整数,即所有参数的乘积或者-1
【样例输入】0
【样例输出】-1
【样例输入】1 1
【样例输入】1
【样例输入】2 2 5
【样例输入】10
【样例输入】3 2 5 6
【样例输入】60

def  test(*para):
        ()

        
origin=input().split()
origin=[eval(x)  for  x  in  origin]
number=origin[0]    #获取参数个数
if  number==0:
        result=test()
elif  number==1:
        result=test(origin[1])
elif  number==2:
        result=test(origin[1],origin[2])
elif  number==3:
        result=test(origin[1],origin[2],origin[3])
print(result)

用for循环遍历参数para(带一个星号的参数para的类型是元组),然后把每一项的值转为数字后再相乘即可。
参考链接:
python---函数中传入的参数带*_wqm_测试story的博客-CSDN博客_python函数传入*

def  test(*para):
    
def  test(*para):
    
    if len(para)==0: #如果参数长度为0,对应输入的的数的个数为0,则返回-1
        return -1
        
    #print("para",para)
    #其他情况遍历参数元组的每一项,然后逐一把他转换为整数,把他们相乘,然后返回即可
    result = 1
    for i in para:
        j = int(i)
        result*=j
        #print("j=",j,",result=",result)
    
    return result
 
        
origin=input().split()
origin=[eval(x)  for  x  in  origin]
#print("origin=",origin)
number=origin[0]    #获取参数个数
if  number==0:
        result=test()
elif  number==1:
        result=test(origin[1])
elif  number==2:
        result=test(origin[1],origin[2])
elif  number==3:
        result=test(origin[1],origin[2],origin[3])
print(result)


img

可以参考如下代码

def test(*para):
    if para:  # 判断是否传入参数
        num = 1
        for i in para:
            num *= i
        return num
    else:
        return -1


origin = input().split()
origin = [eval(x) for x in origin]
number = origin[0]  # 获取参数个数
if number == 0:
    result = test()
elif number == 1:
    result = test(origin[1])
elif number == 2:
    result = test(origin[1], origin[2])
elif number == 3:
    result = test(origin[1], origin[2], origin[3])
print(result)

填空test函数:

def test(*para):
    if not para:
        return -1
    product=1
    for i in para:
        product*=i
    return product

使用简单选择以及简单遍历即可。