我可以从一个字母得到数字,但不能从整个单词中得到数字。
我该怎么办?
这是我当前的结果:
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
答案 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)