<p>刚刚遇到了以下我无法理解的Python行为:</p>
<pre><code>names = ["Paul", "Mary", "Susan"]
names.sort()
def valuate(string):
print ord('A')
return sum(ord(s) for s in string)
i = 1
for name in names:
print i, name, valuate(name)
i += 1
</code></pre>
<p>我希望输出:</p>
<pre><code>65
1 Mary 409
65
2 Paul 402
65
3 Susan 522
</code></pre>
<p>但相反,输出:</p>
<pre><code>1 Mary 65
409
2 Paul 65
402
3 Susan 65
522
</code></pre>
<p>print语句似乎已经尝试输出3个元素,当调用print ord('A')时,是否将其作为第三个语句?你知道吗</p>
<p>我没有找到任何关于这种行为的参考资料,也不知道如何在谷歌上搜索。顺便说一下,我在这里使用的是Python2.7.3。喂,我搞糊涂了。你知道吗</p>