【问题描述】编写一个函数,可以接收任意数量的参数(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)
可以参考如下代码
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
使用简单选择以及简单遍历即可。