在词典中检索变量值的关键错误


VOWELS = 'aeiou'
CONSONANTS = 'bcdfghjklmnpqrstvwxyz'
HAND_SIZE = 7
SCRABBLE_LETTER_VALUES = {
    '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 = 'hi'
SCRABBLE_LETTER_VALUES.get(word)

我应该得到H i的值,但它不断返回或键错误

您尝试通过在字典中检查单词" hi"来解决它。但是您需要做的是scrabble_letter_values.get(word),您需要去:

points = 0    
for character in word:
    points += SCRABBLE_LETTER_VALUES.get(character)

基本上,这不是通过变量单词中的每个字母,并算出值的点数,并将该数字添加到变量点。您可以用上面的代码替换scrabble_letter_values.get(word)。它应该起作用。

您也可以使用列表理解。我的意思是:

points = sum([SCRABBLE_LETTER_VALUES[char] for char in word])

这将遍历单词中的每个字符,弄清楚其点并列出所有角色的所有要点。然后,它将将列表中的所有数字加在一起,以提出总点。这更复杂,但看起来更简单并且更紧凑。

我希望这会有所帮助。

答案(使用列表理解):

word_value = sum(SCRABBLE_LETTER_VALUES[x] for x in word)
print(word_value)

最新更新