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

mor*_*see 4 python string

如何为每个大写字母分配一个数值,然后通过字符串使用它,然后将值相加.

例如.

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

string = 'ABC'
Run Code Online (Sandbox Code Playgroud)

然后返回答案6(在这种情况下).

Ton*_*nen 11

base = ord('A') - 1
mystring = 'ABC'
print sum(ord(char) - base for char in mystring)
Run Code Online (Sandbox Code Playgroud)


rec*_*ive 6

您可以使用ord获取ascii代码,然后减去64.

def codevalue(char):
    return ord(char) - 64
Run Code Online (Sandbox Code Playgroud)

  • 减去ord('A')然后加回1.它的美妙之处在于它摆脱了神奇的数字64,这对那些没有记住ASCII表的人来说是神秘的,但是ord('A')是显而易见的你在做什么. (6认同)
  • 更好的是,减去ord('A'). (4认同)
  • 我不明白为什么那更好.这会产生错误的结果,但如果它很受欢迎,我猜也是如此. (2认同)