将字符位置乘以该字符的 ord() 值

Multipy character position by ord() value of that character

我正在尝试在 python 中创建一个函数,该函数需要一个单词,找到单词中每个字符的 ASCII 值,然后将每个值乘以该单词中的字符 并加在一起。 我想出了下面但是我不知道如何将每个 'x' 与每个字符的位置编号相乘。

mystring = 'AZC'
total = 0
for c in mystring:
    x = ord(c)
    total += x
print(total)

此代码 returns 值为 222('A' 为 65 + 'Z' 为 90 + 'C' 为 67)但我需要 65 * 1 + 90 * 2 + 66 * 3 = 443 它可能与子字符串有关,但我迷路了

enumerate()知道字符的索引

for index, c in enumerate(mystring):
    x = ord(c)
    pos = index + 1
    total += (x * pos)

使用enumerate()获取位置。您可以使用 sum() 函数将它们全部相加。

total = sum(pos * ord(c) for pos, c in enumerate(mystring, 1))

第二个参数 1 使它从 1 开始位置而不是 0

mystring = 'AZC'
total = 0
for i,c in enumerate(mystring):
    x = ord(c)
    total += (x*(i+1))
print(total)

enumerate returns 一个元组,其中包含您要迭代的位置和元素。