我想取一个单词的每个字母(a为1,b为2,依此类推),然后将它们全部加在一起以找到所有数字的总和。例如,“苹果”为50。我有以下代码:
invalid literal for int() with base 10
但是,这将返回以下错误:
long long
我可能犯了一些愚蠢的错误,但我似乎无法弄清楚问题出在哪里。任何帮助将不胜感激。
答案 0 :(得分:4)
字符串是不可变的。 word.replace()
返回修改字符串,但不更新word
。而且您也无法将字符串更改为数字列表。
您根本不需要使用replace
,只需将转换加起来即可。
def conversion(word):
return sum(conversions[letter] for letter in word)
答案 1 :(得分:3)
您肯定会使事情变得不必要地复杂。所有小写字母字符均按顺序编码。获取他们的代码并将其加起来:
def conversion(word):
return sum(ord(x) - ord('a') + 1 for x in word)
conversion('apple')
#50
请注意,此代码不会正确处理大写字母或标点符号。
答案 2 :(得分:0)
尝试一下(这将处理大写和小写):
def conversion(word):
return sum([ord(x.lower()) - 96 for x in word])
>>> conversion("AppLe")
50