当我输入一个单词时,例如"测验"我得到了输出:
10
1
1
10
我想要的时候:
22 (Adds all the numbers)
我的解决方法:
SCORES = {
'a' : 1, 'b' : 3, 'c' : 3 , 'd' : 2, 'e' : 1, 'f' : 4, 'g' : 2,
'h' : 4, 'i' : 1, 'j' : 8 , 'k' : 5, 'l' : 1, 'm' : 3, 'n' : 1,
'o' : 1, 'p' : 3, 'q' : 10, 'r' : 1, 's' : 1, 't' : 1, 'u' : 1,
'v' : 4, 'w' : 4, 'x' : 8 , 'y' : 4, 'z' : 10,
}
a = input("Enter word: ")
for b in a:
c = SCORES[b]
print(c)
请帮忙! :)
答案 0 :(得分:1)
你没有总结价值观。您可以按如下方式修改代码:
a = input("Enter word: ")
a = a.strip()
total = 0
for b in a:
c = SCORES[b]
total += c
print total
或者,您可以使用sum()
和列表理解:
>>> SCORES = {
... 'a' : 1, 'b' : 3, 'c' : 3 , 'd' : 2, 'e' : 1, 'f' : 4, 'g' : 2,
... 'h' : 4, 'i' : 1, 'j' : 8 , 'k' : 5, 'l' : 1, 'm' : 3, 'n' : 1,
... 'o' : 1, 'p' : 3, 'q' : 10, 'r' : 1, 's' : 1, 't' : 1, 'u' : 1,
... 'v' : 4, 'w' : 4, 'x' : 8 , 'y' : 4, 'z' : 10,
... }
>>> word = 'quiz'
>>> sum([SCORES.get(a.lower()) for a in word])
22