如何给每个大写字母分配一个数值?

4 投票
9 回答
4246 浏览
提问于 2025-04-16 04:08

我该如何给每个大写字母分配一个数字值,然后在后面通过字符串使用这些值,并把它们加起来呢?

比如说:

A = 1, B = 2, C = 3 (etc..)

string = 'ABC'

最后返回的结果是6(在这个例子中)。

9 个回答

4
import string

letter_to_numeral = dict(zip(string.uppercase, range(1, len(string.uppercase) + 1) ))

print letter_to_numeral
>>> {'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}

def score_string(s):
    return sum([letter_to_numeral[character] for character in s])


score_string('ABC')
>>> 6

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

11
base = ord('A') - 1
mystring = 'ABC'
print sum(ord(char) - base for char in mystring)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

6

你可以使用 ord 这个函数来获取字符的ASCII码,然后再减去64。

def codevalue(char):
    return ord(char) - 64

撰写回答