将字符位置乘以该字符的 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 一个元组,其中包含您要迭代的位置和元素。
我正在尝试在 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 一个元组,其中包含您要迭代的位置和元素。