python - 在“n”下面找到 3 或 5 的倍数
问题描述
我无法弄清楚我的代码有什么问题。我想要做的是创建一个函数,它会告诉我 3 和 5 的所有倍数的总和低于给定的“数字”。
这是我所拥有的:
def solution(number):
sum = 0
for numbers in range(1,number):
if number%3 == 0 or number%5 == 0:
sum += number
return sum
它给了我 90。我需要 23(3、5、6、9 的总和)
解决方案
您正在使用number
(函数参数)而不是numbers
(循环变量)。
也许这就是为什么您应该使用描述性和可区分的变量名称的原因。在您的情况下,您使用了两个非常相似的变量名称,同时还重新绑定了内置函数的名称sum
。如果代码看起来更像:
def solution(number):
total = 0
for n in range(1, number):
if n%3 == 0 or n%5 == 0:
total += n
return total
或更简洁地说:
def solution(number):
return sum(n for n in range(1, number) if n%3 == 0 or n%5 == 0)
推荐阅读
- python - 为什么我的 Gmail 帐户 Bruteforcer 无法正常工作?
- python - Python 从并行文件夹中的 Jupyter Notebook 导入
- javascript - MySQL 未在 Node.js 中使用 Promise.All 运行
- javascript - 如何在更改第二个选择选项时使用不同的属性
- python - bash:/python/run/venv/bin/activate:没有这样的文件或目录
- html - 列到顶部 html 样式两个方形文本行
- go - 随时间向下舍入到特定间隔
- javascript - moment.js 模拟 local() 所以单元测试运行一致
- powershell - 设计Powershell脚本以查找包含文件的数字
- uwp - 如何将命令绑定到用户控件中数据模板中的复选框?