La Práctica Hace al Maestro. 9. Puntaje Scrabble


#1

Buenas,
Estoy realizando el ejercicio de Scrabble con puntuaje.
Es fácil, pero no entiendo porque no se valida el código.
¿Hay algo erróneo en lo que he hecho?


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 puntaje_scrabble(palabra,score):
    total=0
    palabra=palabra.lower()
    print palabra
    for i in range(len(palabra)):
        total+=score[palabra[i]]
    return total

print puntaje_scrabble("AbcDeFgijKlmNOPQrstUvWXYz",score)

Console:

abcdefgijklmnopqrstuvwxyz
83
None

No entiendo que esta mal para que me aparezca el error:
"¡Uy! Probá otra vez. Recuerda poner todas las letras en minúscula.".

Muchas gracias.

P.D.: En Español hay errores en diversos códigos, dado que hay caracteres que no existen en ASCII, por ejemplo “¡”, “¿” o los accentos, y es necesario borrarlos antes de validar.


#2

La solución fácil es prefijar cualquier cadena que contenga unicode con el modificador u.

message = u"¡Uy! Probá otra vez.".

En raras ocasiones una palabra podría ser 8, 9 o incluso 10 letras, pero no más. En Scrabble sólo hay siete fichas para trabajar.


#3

Ya he solucionado el problema.
En la función introducía dos argumentos cuando debería ser uno y el ejercicio no explica ese error.
Debe entrar SOLO un argumento que es “palabra”, si se introducen dos argumentos no se acepta el ejercicio.

Saludos.


#5