ccluo 发表于 2019-3-25 15:38:08

18讲动动手第0题 0. 编写一个符合以下要求的函数: a) 计算打印所有参数的和乘...

18讲动动手第0题
0. 编写一个符合以下要求的函数:
    a) 计算打印所有参数的和乘以基数(base=3)的结果
    b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
我用了以下代码,受上面17讲影响用了pop。但是报错提示:‘tuple' object has no attribute 'pop'.
萌心求姐
def base(*num):
   result=0
   for each in num :
       result+=each
   if num.pop()!=5:
      result*=3
   else:
          result*=5
   print(result)
base(1,2,3,4)

塔利班 发表于 2019-3-25 15:41:46

*num收集参数,num是元组不是列表,列表才有pop函数

ccluo 发表于 2019-3-25 15:54:08

塔利班 发表于 2019-3-25 15:41
*num收集参数,num是元组不是列表,列表才有pop函数

请问下这个代码怎么改才能运行
我改了一下,提示说给了4个值,不是元祖吗
def base(*num):
   list(base)
   result=0
   for each in num :
       result+=each
   if num.pop()!=5:
      result*=3
   else:
          result*=5
   print(result)
base(1,2,3,4)

塔利班 发表于 2019-3-25 16:10:24

def base(*num):
    return print(3*sum(num) if num[-1]!=5 else 5*sum(num))

yrhhh 发表于 2020-7-28 15:10:53

请问“”基数不参与求和运算“”是什么意思,我的理解是如果输入参数是1,2,3,4,5,那么应该计算1+2+3+4的值,再乘以5,但是我发现最佳答案和小甲鱼的答案好像不是这个意思?{:10_269:}

plovelove 发表于 2021-10-12 19:25:42

本帖最后由 plovelove 于 2021-10-12 19:59 编辑

yrhhh 发表于 2020-7-28 15:10
请问“”基数不参与求和运算“”是什么意思,我的理解是如果输入参数是1,2,3,4,5,那么应该计算1+2+3+4 ...

(1+2+3+4+5)*5 ,如果最后一个参数是5,就乘以5
页: [1]
查看完整版本: 18讲动动手第0题 0. 编写一个符合以下要求的函数: a) 计算打印所有参数的和乘...