python - 计算几个数字的乘积的函数
问题描述
我有一个函数可以计算几个数字的乘积,但它不能通过测试部分:
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
?
解决方案
您的初始实现mul()
将接受不带参数的调用。
所以... 检查numbers
列表是否为空?
推荐阅读
- java - 在 JAVA 中将项目添加到列表中的行为不符合预期
- flutter - 颤振:当键盘出现时,如何让小部件在顶部流动?
- python-3.x - 安装了 pip 但新项目未检测到包的 python 中的包
- python - discord.ext.commands.errors.CommandNotFound:找不到命令“test”
- python - 尝试在 Raspberry Pi 上使用 Webdriver Manager,出现错误“无法使用此命令获取 Firefox 的版本:Firefox --version”
- internationalization - 使用 Strapi i18n 和动态深度路由的 Nuxt 静态页面混合了组件
- heroku - heroku 部署问题 - 错误:无法将一些参考推送到
- c - 如何改进这个 Makefile 以优化 SRC 和 BIN 文件夹的使用?
- c - 位扫描转发作为 C 的编译时常量?
- swift - 无法在同一文件夹中保存多个文本文件(MacOS Swift 应用程序)