9. 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
    for i in str(word):
        if i==" ":
            break
        for key in score:
            if i==key:
                total+=int(score[key])
    return int(total)
kata=raw_input("").lower()
print scrabble_score(kata)

Oops, try again. Your function fails on scrabble_score("DuNe"). It returns "2" when it should return "5".

why this is happen? i'm stuck. i don't know how to solve this


#2

Hi @n_zakiya,

If this is a Codecademy course related question, please change the category of this post to the respective category. If you are unsure about doing this, give me the exercise link and I'll do. Thanks!

As for your error, I can give you a hint that "D" and "d" are being treated the same (lowercase and uppercase doesn't matter). You have to use some built-in Python method, related to case manipulation, here:

if i==key:

Hope it helps! :slightly_smiling:


#3

I moved it to the Python category.


#4

Dude its work great in python 3 idle