Scrabble score


#1



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):
    total = 0
    new_word = word.lower()
   
    for x in new_word:
        if x in new_word:
            total = total + score[x]
            return total

what's wrong with the code
the output i get is only the key value of the first alphabet of word


#2

Check that the return statement is not inside the loop.


#3

It must be in new_word since it is the iterator variable value. Remove the conditional and just accumulate the letter score.


#4

do you mean like this
"""
def scrabble_score(word):
total = 0
new_word = word.lower()

for x in new_word:
    total = total + score[x]
    return total

"""


#5

The return statement is still inside the loop; but, yes. You are on the right track.


#6

thank you @mtf it worked!


#7

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