程序意外停止

时间:2012-06-16 18:37:54

标签: python exception overflow

我编写的程序打算输出100到200之间的素数。(我在路上添加了一些额外的打印命令,这样我就能看到它到达的位置。)任何人都可以给我一个提示为什么它停在137,而脚本正在检查这个号码?

谢谢!

这是脚本:

import math
import sys
index=100.0
checker=2.0

def start():
    print("A")
    global index
    while index<=200.0:
        fu1()
    if index>200.0:
        end()

def fu1():
    print ("B")
    print ("checker", checker)
    print ("index", index)
    global index
    global checker
    varb=index/checker
    varb2=round(index/checker, 0)
    if checker>=index:
        print ("C")
        print(index)
        index=index+1.0
        checker=2.0
        start()
    if varb2==varb:
        print("D")
        checker=2.0
        index=index+1.0
        start()
    checker=checker+1.0
    fu1()


def end():
    print("E")
    print("ENDED")
    sys.exit()

start()

1 个答案:

答案 0 :(得分:2)

你的程序已达到递归调用次数的限制(我认为在python中默认为1000)...例如,你可以使用此命令sys.setrecursionlimit(5000)来增加它。