我有一个关于如何Python函数问题的作品.我有一个我写的程序,涉及生成几个数字的素数因子分解.
for a in range(2,25):
print primefactorize(a)
Run Code Online (Sandbox Code Playgroud)
当我在上面的范围内测试它时,终端中弹出的最后一个列表是24的主要因子分解输出,而不是25.
for a in range(1,x):
Run Code Online (Sandbox Code Playgroud)
只运行每个值到x-1?
谢谢
我认为你的困惑在于范围
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]
Run Code Online (Sandbox Code Playgroud)
从文档:
这是一个用于创建包含算术进度的列表的通用函数.它最常用于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)
Run Code Online (Sandbox Code Playgroud)