擅长:python、mysql、java
<p><code>for i in f:</code>没有做你认为的事情。文件的默认迭代器为您提供<code>lines</code>,而不是<code>characters</code>。所以你是说“整条线等于回报吗?”</p>
<p>试着用<code>if i[-1] == "\n":</code>来代替,就像上面说的“行中的最后一个字符是换行符吗?”</p>
<p>您可能会注意到这是微不足道的事实,因为每个“行”都以一个换行符结束,所以简单地计算行数就足够了。</p>
<hr/>
<p>如果要遍历各个字符,我将执行以下操作:</p>
<pre><code>for line in file:
for char in line:
dostuff()
</code></pre>
<p>将变量命名为您认为它们是什么,如果它们最终不是您认为的那样,也将有助于解决问题。</p>
<hr/>
<p>关于<a href="https://repl.it/Dzaf/0" rel="nofollow">repl.it</a>的示例。这些变量被命名为<code>line</code>和<code>char</code>只是为了显示它们是什么,它们可以是<code>banana</code>和<code>henry</code>一样简单,尽管这样就不太清楚发生了什么。<code>raven</code>在本例中模拟文件。</p>