擅长:python、mysql、java
<p>循环逻辑似乎不正确:每次打开文件时只有一个数字要写。以下是固定版本:</p>
<pre><code>with open('nums', 'w') as f:
i = 2
while True:
n = fib(i)
f.write(str(n))
i += 1
</code></pre>
<p>另外,当您通过<code>Ctrl+C</code>停止脚本时,您可能需要在<code>f.write</code>之后添加另一行<code>f.flush()</code>,以确保更改被刷新到磁盘上。你知道吗</p>
<p><strong>编辑:</strong></p>
<p>或者,正如@tdelaney在评论中提到的(谢谢@tdelaney:),您可以使用append模式,只需将<code>with open('nums', 'w')</code>替换为<code>with open('nums', 'wa')</code>。然而,这种方法:</p>
<ol>
<li>效率很低:文件需要为每个数字打开和关闭一次,而这确实是不必要的。你知道吗</li>
<li>不能很好地处理文件:脚本启动时文件的内容不会被清除。因此,当您多次调用脚本时,该文件将包含以前运行的结果。你知道吗</li>
</ol>