擅长:python、mysql、java
<p>当您从文件中添加分数时,您将它们作为字符串添加:<code>scores.append(line.rstrip("\n"))</code>。但是,当你在程序中添加分数时,你就是把它们作为整数相加:<code>int(raw_input("What score did you get?: "))</code>。在</p>
<p>当Python对包含字符串和整数的列表进行排序时,它将根据字符顺序对字符串进行排序(so<code>'1' < '12' < '3'</code>),并对整数进行单独排序,将整数放在字符串之前:</p>
<pre><code>>>> sorted([1, 8, '11', '3', '8'])
[1, 8, '11', '3', '8']
</code></pre>
<p>大概是在字符后面和前面都打印出一个引号,就像这里一样(表示它是一个字符串)。在</p>
<p>所以,当你开始读取文件时,把它们变成一个整数,就像你读用户输入一样。在</p>
<hr/>
<p>其他提示:</p>
<ul>
<li><code>scores.sort(reverse=True)</code>将按相反的顺序排序,而不必遍历列表两次。在</li>
<li>做<code>except:</code>通常不是一个好主意:这样做绝对可以捕捉到程序的任何问题,包括用户点击<code>^C</code>试图退出,系统内存不足等等。您应该将<code>except Exception:</code>作为一个包罗万象的方法来获取可以恢复的异常,但不能恢复这些类型的系统错误,或者更具体的异常当您只想处理某些类型时。在</li>
</ul>