Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-大数_Python_Python 2.7_Largenumber - Fatal编程技术网

Python-大数

Python-大数,python,python-2.7,largenumber,Python,Python 2.7,Largenumber,是否仍然可以运行范围超过13个字符的for循环? 例如: for i in range (1000000000000): 我知道这不起作用,但有什么办法吗?对于python 2.7,使用(使用生成器而不是初始化大型列表)代替: 对于python 2.7,请改用(使用生成器而不是初始化大型列表): 使用xrange也会给您Python int太大,无法转换为C long错误,因为数字必须适合C long。要克服此问题,请使用创建自己的范围: from itertools import cou

是否仍然可以运行范围超过13个字符的for循环? 例如:

for i in range (1000000000000):
我知道这不起作用,但有什么办法吗?

对于python 2.7,使用(使用生成器而不是初始化大型列表)代替:

对于python 2.7,请改用(使用生成器而不是初始化大型列表):


使用
xrange
也会给您
Python int太大,无法转换为C long
错误,因为数字必须适合C long。要克服此问题,请使用创建自己的范围:

  from itertools import count

def myx_range(start, end):
    return iter(count(start).next, end)
如果希望在python 3中使用相同的逻辑:

from itertools import count

def myx_range(start, end):
    cn = count(start)
    return iter(lambda: next(cn), end)
while
循环:

from itertools import count

def myx_range(start, end):
    while start < end:
        yield start
        start += 1
来自itertools导入计数
def myx_范围(开始、结束):
开始<结束时:
产量起点
开始+=1
windows上的long是
32位的
,因此您将使用
xrange
和这么大的数字达到极限


请参见使用
xrange
也会导致
Python int太大而无法转换为C long
错误,因为该数字必须适合C long。要克服此问题,请使用创建自己的范围:

  from itertools import count

def myx_range(start, end):
    return iter(count(start).next, end)
如果希望在python 3中使用相同的逻辑:

from itertools import count

def myx_range(start, end):
    cn = count(start)
    return iter(lambda: next(cn), end)
while
循环:

from itertools import count

def myx_range(start, end):
    while start < end:
        yield start
        start += 1
来自itertools导入计数
def myx_范围(开始、结束):
开始<结束时:
产量起点
开始+=1
windows上的long是
32位的
,因此您将使用
xrange
和这么大的数字达到极限



请参见

记住,处理器寄存器中存储的最小值和最大值是有限制的。这意味着并非所有模块都可以接收大数字作为参数。

请记住,在处理器寄存器中存储的最小值和最大值是有限制的。这意味着并非所有模块都可以接收大数字作为参数。

如果边界和步长在[-sys.maxsize-1,sys.maxsize]范围内,并且如果边界和步长在[-sys.maxsize-1,sys.maxsize]范围内,元素总数为
range()
在Python3中运行良好(返回迭代器),但是
range()在Python2中返回列表,请使用
xrange()
用于迭代器。您可以在不增加额外内存开销的情况下迭代任意时间。当我使用xrange时,它会说“Python int太大,无法转换为C long”无法复制,您使用的是哪种Python?@AChampion Python 2.7我想您使用的是windows?
range()
在Python3中运行良好(返回迭代器)但是,
range()
在Python2中返回一个列表,使用
xrange()
用于迭代器。您可以在不增加额外内存开销的情况下迭代任意时间。当我使用xrange时,它说“Python int太大,无法转换为C long”无法复制,您使用的是哪种Python?@AChampion Python 2.7我想您使用的是windows?iter()的良好哨兵用法
这在我的程序中似乎不起作用。我必须在每个循环中使用相同的参数进行嵌套循环,而在第二个循环中它将不起作用。@t.Green,怎么会不起作用呢?
对于myx_范围(0,100000000000)中的I
将根据您的需要多次工作to@PadraicCunningham我用错了,我认为函数就是循环,我没有意识到ro必须为我在myx_范围(0,10000000000)内编写
但我知道它是有效的。谢谢!:)@ShadowRanger,是的,最初我没有在函数中使用它,所以只是离开了循环。我更改了它,但保留了lambda,以防有人想在python3中使用它的变体。很好的哨兵用法
iter()
这在我的程序中似乎不起作用。我必须在每个循环中使用相同的参数进行嵌套循环,而在第二个循环中它将不起作用。@t.Green,怎么会不起作用呢?
对于myx_范围(0,100000000000)中的I
将根据您的需要多次工作to@PadraicCunningham我用错了,我认为函数就是循环,我没有意识到ro必须为我在myx_范围(0,10000000000)内编写
但我知道它是有效的。谢谢!:)@ShadowRanger,是的,最初我没有在函数中使用它,所以只是离开了循环。我更改了它,但保留了lambda,以防有人想在python3中使用它的变体。