0

我有一个关于 python 函数如何工作的问题。我正在编写一个程序,其中涉及生成多个数字的素数分解。

for a in range(2,25):
    print primefactorize(a)

当我在上面的范围内测试它时,终端中弹出的最后一个列表是 24 的素数分解输出,而不是 25。函数

for a in range(1,x):

只遍历每个值直到 x-1?

谢谢

4

1 回答 1

5

我认为你的困惑在于范围

range(2,25)
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]

从文档中:

这是创建包含算术级数的列表的通用功能。它最常用于 for 循环。参数必须是纯整数。如果省略 step 参数,则默认为 1。如果省略 start 参数,则默认为 0。完整形式返回纯整数列表 [start, start + step, start + 2 * step, ...] . 如果step为正,则最后一个元素是最大的start + i * step小于stop;如果 step 为负数,则最后一个元素是最小的 start + i * step 大于 stop。step 不能为零(否则会引发 ValueError)。例子:

在数学中,这称为start包含性、stop排他性区间,如下所示:

[start, stop)
于 2013-04-01T22:16:48.937 回答