Si on se trompe dans l'écriture de la clé ( par exemple ici Prenom
au lieu de Prénom
), Python ne signale aucune erreur mais créé une nouvelle entrée clé: valeur
dans le dictionnaire.
Dans le cas d'une affectation d'une valeur à une clé inexistante, Il n'y a donc pas de risque d'erreur du type "Index out of range" avec un dictionnaire !
Par contre, un test sur une clé inexistante entraînera une erreur de type "KeyError".
L'idée : on parcourt ( par valeur ) les lettres de la chaîne mot, et on ajoute à une variable somme ( initialisée bien entendu auparavant à 0 ) la valeur associée à cette lettre dans le dictionnaire scrabble ( la lettre représente donc une clé dans ce dictionnaire ) :
Le dictionnaire scrabble ne sert a priori que dans la fonction, il est donc logique de le définir à l'intérieur de celle-ci.
Le principe ressemble au précédent, sauf que dans certains cas il faudra ajouter une valeur à une somme, et dans d'autres le soustraire.
Il faut donc là aussi parcourir la chaîne r caractère par caractère, mais en pouvant "s'adresser" également au caractère suivant le caractère courant; pour cela, un parcours par valeur n'est pas adapté, il faut donc forcément faire un parcours par indice de la chaîne.
Par conséquent, il faudra parcourir la chaîne jusqu'à son avant-dernier caractère, sinon on aura une erreur quand on cherchera à s'adresser au "caractère suivant le dernier caractère" !
Cela implique également de ne pas oublier ensuite ce dernier caractère dans la somme à calculer...
Il faut parcourir le texte, et pour chaque nouveau caractère ( c'est à dire, qui n'est pas encore une clé dans le dictionnaire ), créer une entrée pour lui et lui donner une valeur de 1.
Si le caractère correspond déjà à une clé dans le dictionnaire, il faut simplement incrémenter la valeur de 1.
Il ne faut pas afficher toutes les lettres de l'alphabet, uniquement les caractères présents dans le texte !
Pour cela :