Amarantos 发表于 2021-1-30 17:24:06

定义函数中如何把收集参数变成列表?

代码在这def f1(*params,base=3):
    sum1=0   
    if params==5:
      base=5
      del params#忘记了params是元组这个事实
      for i in params:
            sum1+=i
      print(sum1)
    else:
      for i in params:
            sum1+=i
      print(sum1*base)python报错后才意识到params是个元组,不能修改。又用了下list(params),结果还是不行,这可咋整。
对应问题
编写一个符合以下要求的函数:
    a) 计算打印所有参数的和乘以基数(base=3)的结果
    b) 如果参数中最后一个参数为5,则设定基数为5,基数不参与求和计算。



逃兵 发表于 2021-1-30 17:33:59

本帖最后由 逃兵 于 2021-1-30 17:37 编辑

函数中添加params = list(params)可以解决这个问题,但是本身不满足尾号是5的情况,后面写了修改后的答案
def f1(*params,base=3):
    sum1=0
    params = list(params)
    if params==5:
      base=5
      del params#忘记了params是元组这个事实
      for i in params:
            sum1+=i
      print(sum1)
    else:
      for i in params:
            sum1+=i
      print(sum1*base)

逃兵 发表于 2021-1-30 17:36:06

def f1(*params,base=3):
    sum1=0
    params = list(params)
    if params==5:
      params.pop()
      return f1(*params,base=5)
    else:
      for i in params:
            sum1+=i
      print(sum1*base)

Amarantos 发表于 2021-1-30 17:41:22

逃兵 发表于 2021-1-30 17:33
函数中添加params = list(params)可以解决这个问题,但是本身不满足尾号是5的情况,后面写了修改后的答案

多谢解答,明白是哪的问题了
页: [1]
查看完整版本: 定义函数中如何把收集参数变成列表?