1

一个新手问题:我必须迭代一个名称,然后将每个字母与一个以开头的数字相关联a=1, b=2, c=3, etc.,然后将这些数字相加。我已经做到了这一点,但没有更进一步:

def main():
    name = input("Enter name  ")
    sum = 0
    for ch in name:
        # ?
4

2 回答 2

3

这个怎么样?

def main():
    print sum(ord(c.lower()) - ord('a') + 1 for c in raw_input("Enter name: "))

即使您同时处理大写和小写字母,这也将起作用。如果您只处理小写字母,则可以更改c.lower()c(当然,它仍然可以按原样工作,但是如果您只使用小写字母,进行更改会使其更快)。

于 2012-09-18T20:51:57.943 回答
1

创建一个将字符映射到值的字典,然后get()在当前字符上使用默认值为 0 的方法。

于 2012-09-18T20:42:49.990 回答