首页 > 解决方案 > 计算几个数字的乘积的函数

问题描述

我有一个函数可以计算几个数字的乘积,但它不能通过测试部分:

def mul(*numbers):
    product = 1
    for n in numbers:
        product = product * n
    return product

# Tests that pass
assert mul(5) == 5
assert mul(5, 6) == 30

# Tests that fail!
try:
  mul()
  assert false, "Expected a TypeError exception to be raised"
except TypeError:
  pass

如果我像这样修改代码:

def mul(x, y=1, *numbers):
    product = x*y
    for n in numbers:
        product = product * n
    return product

它运作良好。我的问题是为什么我们需要写product = x*y

标签: python

解决方案


您的初始实现mul()将接受不带参数的调用。

所以... 检查numbers列表是否为空?


推荐阅读