python - 总结 range() 中的所有整数

标签 python python-3.x

我需要编写一个程序来总结所有可以在 100 到 2000 范围内被 3 整除的整数。我什至不知道从哪里开始,到目前为止我已经编写了一小段代码,它不是不正确。

for x in range(100, 2001, 3):
      print(x+x)

任何帮助深表感谢!

最佳答案

由于您知道此范围内第一个可被 3 整除的数字是 102,因此您可以执行以下操作:

解决方案:

>>> sum(range(102, 2001, 3))
664650

使其成为一个健壮的函数:
def sum_range_divisible(start, end, divisor):
    while start % divisor != 0:
        start += 1
    return sum(range(start, end, divisor))

使用它:
>>> sum_range_divisible(100, 2001, 3)
664650

注意:

这里的优点是您不必检查整个范围内的每个数字,因为您每次都跳 3。

时间:

我已经为不同的解决方案计时,我的和 aga's :
>>> import timeit
>>> timeit.Timer('sum(range(102, 2001, 3))').repeat()
[9.516391893850312, 9.49330620765817, 9.508695564438462]
>>> timeit.Timer('sum(x for x in range(100, 2001) if x % 3 == 0)').repeat()
[134.757627812011, 134.46399066622394, 138.34528734198346]

结论:

我的答案快了 14

关于python - 总结 range() 中的所有整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455977/

相关文章:

Python函数将相对路径../../翻译成完整路径

Python 请求 : Handling JSON response, 存储到列表或字典?

python - 如何识别字符串中的非字母

python - 从具有相同索引的矩阵生成列表

python - 如何连接到 sqlite3 db 文件并在 fastapi 中获取内容?

python - 递归基础表示

python - Django:自定义模板标签,需要 2 个变量

python - 在同一数据库上同时使用 SQLAlchemy 和 Django ORM

python - 函数中的列积分

python - 是否有可能在 python 的 tkinter 菜单栏中有图标