比较python中单词的值时,为什么"Nick"会比"George"更大?

Han*_*urg 3 python ascii character

我正在研究即将到来的任务,并试图找出以下程序打印的内容:

d = ["Bob", "Tom", "George", "Susan", "Mary"]

n = raw_input("Enter a name: ") # assume user enters Robert

for name in d :
    if name < n :
        print name

print

size = len( d )

i = 0

while i < (size - 1) :

    if d[i] > d[i+1] :
        temp = d[i]
        d[i] = d[i+1]
        d[i+1] = temp 
    else :
        d[i+1] = "Nick"

    i += 1
for name in d :
print name
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为当我运行程序时,它返回:

Enter a name: Robert
Bob
George
Mary

Bob
George
Nick
Mary
Nick
Run Code Online (Sandbox Code Playgroud)

我很清楚如何计算单词的价值.我以为你将ascii值分配给各个字母并将它们加在一起得到值,但是使用该方法不会得到这些结果.有人可以帮我理解吗?

San*_*har 5

它们按字典顺序排列,所以如果它不相同的话,第一个字母是唯一重要的.

要做你想做的事,请使用

value=sum([ord(x) for x in name])
Run Code Online (Sandbox Code Playgroud)