word = input('Enter word: ')
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,
}
for letter in word:
result = SCORES[letter]
这是我到目前为止所做的:
Enter word: quiz
10
1
1
10
我想要它以便我可以将这些值加在一起得到22.我怎么能这样做?
答案 0 :(得分:6)
试试这个,它是惯用的解决方案:
sum(SCORES[letter] for letter in word)
在Python中,尽可能我们更喜欢使用list comprehensions和/或generator expressions而不是显式循环。它们比显式循环更短,更简单,通常更快!
答案 1 :(得分:4)
result = 0 # create variable outside the loop
for letter in word:
result += SCORES[letter] # add score for each letter
print(result) # print total