擅长:python、mysql、java
<p>这个程序永远不会结束,而且总是崩溃。
由于<code>restart</code>总是<code>True</code>,它将以无限循环的方式继续,直到内存耗尽或达到最大入侵深度。在</p>
<p>即使没有这一点,我想知道整个算法是怎么做的:你总是用相同的定义范围调用函数<code>restart_for()</code>,这只依赖于<code>n</code>。
<code>n</code>不可能减少,因为每次{<cd6>}-循环的迭代都会将其增加1。
这意味着<code>n</code>将在一段时间后变得太大。在</p>
<p>由于函数不断地调用自己,它将在某个时刻耗尽RAM,因为以前对该函数的每次调用的所有数据仍然存储在内存中(如果函数是<code>while</code>-循环,则不会发生这种情况)。
这也解释了上面描述的错误,即代码告诉您没有定义<code>n</code>:这是因为{<cd4>}在RAM中不再存在。因为内存不足,Python决定删除它认为不再需要的任何内容,以便腾出更多空间。由于<code>n</code>是所有变量中定义时间最长的,因此它首先删除了这个变量。在</p>