次のPythonの動作に遭遇しただけで、頭を悩ませることはできません。
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
私が出力することを期待するもの:
65
1 Mary 409
65
2 Paul 402
65
3 Susan 522
しかし、代わりに出力:
1 Mary 65
409
2 Paul 65
402
3 Susan 65
522
printステートメントはすでに3つの要素を出力しようとしているようですが、print ord('A')が呼び出されると、これが3番目のステートメントになりますか?
私はこの振る舞いへの言及を見つけられず、これをグーグルで検索する方法がわかりません。ちなみに、ここではPython2.7.3を使用しています。とにかく、私はここで混乱しています。