Dark Terminetor 2022-08-19 18:36 采纳率: 84.2%
浏览 247
已结题

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)
  • 写回答

3条回答 默认 最新

  • a5156520 2022-08-19 19:11
    关注

    用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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月28日
  • 已采纳回答 8月20日
  • 创建了问题 8月19日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?