刚刚遇到了以下我无法理解的 Pythonic 行为:
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') 时,是否将其作为第三条语句?
我没有找到对这种行为的任何引用,也不知道如何在谷歌上搜索它。顺便说一句,我在这里使用 Python 2.7.3。Anyhoo,我在这里很困惑。