Why error?


score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
"f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
"l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
"r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
"x": 8, "z": 10}

def scrabble_score(word):
for i in score:
if i in score:
return total
if i not in score:


A little more complexity than called for in this exercise. We are given a look-up table of the alphabet in lowercase. To query the table we need only look up one letter at a time, and accumulate the score value for each one. This means iterating over the word, not the table. There is no need to set up a conditional for this.

for letter in word.lower():
    total += score[letter]

We are treating this as a no invalid inputs situation so testing is not required. If we wish to validate the inputs, then we need only check for alpha...

if word.isalpha():
    for letter ...

    return "Invalid input"


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.