Your function fails on scrabble_score("pie"). It returns "3" when it should return "5". Why is the loop not moving forward?


#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 
    for char in word.lower(): 
        total += total + score[char]
        print total 
        return total

print scrabble_score('hummingbird')


#2

a function ends the moment a return keyword is reached

if a return keyword is reached in a loop, the function still needs to end, so the loop will break

so, your loop breaks in its first iteration. You don't want this, given you want to loop over the whole word, not just the first letter

place return outside/after the for loop