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的值,但它会一直返回NONE或键错误
答案 0 :(得分:2)
你试图通过检查单词" 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])
这将遍历单词中的每个字符,计算出它的点并列出所有字符的所有点。然后它会将列表中的所有数字相加,得出总分数。这更复杂,但看起来更简单,更紧凑。
我希望这会有所帮助。
答案 1 :(得分:1)
答案(使用list comprehension):
word_value = sum(SCRABBLE_LETTER_VALUES[x] for x in word)
print(word_value)