xy1770 发表于 2020-7-8 16:59:32

可变参数

"""
factorial阶乘4
"""
# 计算阶乘 n!再乘以其他几个数

def facet(n,*b):# *b表示可变参数,这个参数有几个都可以
    s=1
    for i in range(1,n+1):
      s=s*i
    for item in b:
      s=s*item
    return s

fact(10,9)
fact(10,3,5,2)   # 3,5,2为*b

报错:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-65-c4a3ce61469f> in <module>
   13
   14 fact(10,9)
---> 15 fact(10,3,5,2)   # 3,5,8为*b
   16

TypeError: fact() takes from 1 to 2 positional arguments but 4 were given

Twilight6 发表于 2020-7-8 17:00:55


函数名打错了....你定义的是 facet 而调用的是 fact

"""
factorial阶乘4
"""
# 计算阶乘 n!再乘以其他几个数

def facet(n,*b):# *b表示可变参数,这个参数有几个都可以
    s=1
    for i in range(1,n+1):
      s=s*i
    for item in b:
      s=s*item
    return s

print(facet(10,9))
print(facet(10,3,5,2))   # 3,5,2为*b

小鞋森233 发表于 2020-7-8 17:02:00

最后一行参数给多了

qiuyouzhi 发表于 2020-7-8 17:28:25

小鞋森233 发表于 2020-7-8 17:02
最后一行参数给多了

噗....
可变参数啊,想几个就几个的
页: [1]
查看完整版本: 可变参数