Python脚本挂起,可能是无限循环?

Python脚本挂起,可能是无限循环?,python,infinite-loop,Python,Infinite Loop,再一次处理Euler项目,这次我的脚本就挂在那里。我很确定我会让它运行足够长的时间,我的手迹(我父亲称之为手迹)不会产生任何问题。我哪里做错了 我只包含代码的相关部分,这一次 def main(): f, n = 0, 20 while f != 20: f = 0 for x in range(1,21): if n % x != 0: break else: ++f if f ==

再一次处理Euler项目,这次我的脚本就挂在那里。我很确定我会让它运行足够长的时间,我的手迹(我父亲称之为手迹)不会产生任何问题。我哪里做错了

我只包含代码的相关部分,这一次

def main():
    f, n = 0, 20
    while f != 20:
        f = 0
        for x in range(1,21):
            if n % x != 0: break
            else: ++f
        if f == 20: print n
        n += 20

提前谢谢

Python没有增量(
++
)。它被解释为
+(+(a))
+是一元加号运算符,它基本上什么都不做。使用
+=1

Python没有增量(
++
)。它被解释为
+(+(a))
+是一元加号运算符,它基本上什么都不做。在这里使用
+=1

在您的情况下,“f”值永远不会达到20,因此永远不会退出 1) 在第一次中断时(当n=20和x=3),它再次设置f=0。 同样,对于下一个循环,n也会增加20,但当“x”再次为3时,相同的f=0


所以这将进入无限循环…

在你的例子中,“f”值永远不会达到20,因此永远不会退出 1) 在第一次中断时(当n=20和x=3),它再次设置f=0。 同样,对于下一个循环,n也会增加20,但当“x”再次为3时,相同的f=0


所以这将进入无限循环…

当我在中输入它时,我改变了它,我将把它改回来。谢谢你的提醒。:)表达式
++f
表示“正f”,换句话说,f。你没有增加你的主循环变量。我在输入它时改变了它,我会把它改回来。谢谢你的提醒。:)表达式
++f
表示“正f”,换句话说,f。您没有增加主循环变量。它不是无限循环。当n是前20个自然数中最不常见的倍数时,它就会停止。@Matthew所以也许我的脚本还可以,但它运行的时间不够长?因为它仍然不起作用(我为错误的回答道歉…@Matthew thanx loop最终在232792560停止:)我不知道脚本是否正确。但它确实需要超过1100万次迭代才能终止。在我的例子中,脚本在appx 2分钟内(精确到118秒)完成,以找到编号232792560,它不是一个无限循环。当n是前20个自然数中最不常见的倍数时,它就会停止。@Matthew所以也许我的脚本还可以,但它运行的时间不够长?因为它仍然不起作用(我为错误的回答道歉…@Matthew thanx loop最终在232792560停止:)我不知道脚本是否正确。但它确实需要超过1100万次迭代才能终止