如何在我的Scrabble游戏中计算整个单词的分数?

时间:2019-08-27 23:39:01

标签: python

我可以从一个字母得到数字,但不能从整个单词中得到数字。
我该怎么办?

这是我当前的结果:

Enter a word: python  
Traceback (most recent call last):  
  File "program.py", line 11, in <module>  
    print(SCORES[word])  
KeyError: 'python'  

这是我尝试的代码:

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 = input('Enter a word: ')
print(SCORES[word])

这就是我想要得到的:

Enter a word: python
14

1 个答案:

答案 0 :(得分:2)

您收到错误消息,因为'python'在您的SCORES词典中不是有效的密钥。

要克服此问题,您将需要一次查找一个单词中的每个字母。最简单的方法是使用for循环:

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 = input('Enter a word: ')

word_score = 0
for letter in word:
    word_score += SCORES[letter]

print(word_score)