Soh*_*jee 5 python loops largenumber
我想使用Python中的range()函数迭代大量的数字,如600851475143.但每当我运行程序时,它都会给我一个OverflowError.我使用了以下代码 -
um = long(raw_input())
for j in range(1,num):
....
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多次但它不起作用!
itertools.islice()如果您的指数是长数,请使用:
from itertools import islice, count
islice(count(start, step), (stop-start+step-1+2*(step<0))//step)
Run Code Online (Sandbox Code Playgroud)
Python 3 range()也可以处理python longs.
简化为您的情况:
for j in islice(count(1), num - 1):
Run Code Online (Sandbox Code Playgroud)
虽然xrange似乎达到了你想要的效果,但它无法处理那么大的数字。您可能需要使用这里的这个食谱
\n\nCPython 实现细节:xrange() 旨在简单且快速。实现可能会施加限制来实现这一点。Python 的 C 实现将所有参数限制为本机 C 长整型(\xe2\x80\x9cshort\xe2\x80\x9d Python 整数),并且还要求元素数量适合本机 C 长整型。如果需要更大的范围,可以使用 itertools 模块制作替代版本:
\nislice(count(start, step), (stop-start+step-1+2*(step<0))//step)。
| 归档时间: |
|
| 查看次数: |
8761 次 |
| 最近记录: |