我有这个for循环:
for i in range(1000000000, 1000000030):
foo(i)
执行时会出现此错误:
Traceback (most recent call last):
File "/CENSORED/Activity.py", line 11, in <module>
for i in range(1000000000, 10000000030):
OverflowError: range() result has too many items.
据我所知,这个range
- 对象应该有30个元素......
问题出在哪里?
编辑:
我删除了额外的零,现在我明白了:
Traceback (most recent call last):
File "/CENSORED/Activity.py", line 12, in <module>
factorizeInefficient(i)
MemoryError
编辑2:
def factorizeInefficient(n):
teiler = list()
for i in range(n):
if i != 0:
if (n%i)==0:
teiler.append(i)
print teiler
我自己找到了解决方案:此处还有一个范围(n)对象,这会导致内存错误......
一个额外的问题:你们怎么知道这是python 2? (顺便说一下你......)
答案 0 :(得分:1)
复制/粘贴代码的range()
部分:
>>> len(range(1000000000, 10000000030))
9000000030
因此该范围内实际上有大约90亿个元素。你的第一个参数可能缺少零,或者第二个参数的零太多; - )