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)