在你的情況下,最好使用一個定義所有字符和值的字典。 string
庫提供了一個更簡單的方法來執行此操作。在dict comprehension內使用string.ascii_lowercase
,您可以像這樣填充字典映射。
>>> import string
>>> wordmap = {x:y for x,y in zip(string.ascii_lowercase,range(1,27))}
>>> wordmap
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'g': 7, 'f': 6, 'i': 9, 'h': 8, 'k': 11, 'j': 10, 'm': 13, 'l': 12, 'o': 15, 'n': 14, 'q': 17, 'p': 16, 's': 19, 'r': 18, 'u': 21, 't': 20, 'w': 23, 'v': 22, 'y': 25, 'x': 24, 'z': 26}
現在,您可以輕鬆將其映射到您的輸出。首先我們輸入
>>> word = str(raw_input("Enter a word: ").lower())
Enter a word: apple
>>> values = []
現在我們只是循環輸入單詞並將值附加到空列表中。我們追加這些值是因爲我們還需要找到這些值的總和。
>>> for i in word:
... print "{}".format(wordmap[i])
... values.append(wordmap[i])
...
1
16
16
12
5
你終於可以使用sum
功能輸出的總和值。
>>> sum(values)
50
'ORD(字[I]) - 96 ' – Ajay
可替代地,使用字典'{ 'A':1,...}'而不是分配一個'= 1'。 – jonrsharpe