Compter le nombre de fois où une lettre apparaît dans une chaîne

Résolu/Fermé
Ketool - Modifié par Ketool le 1/03/2016 à 13:49
 Ketool - 1 mars 2016 à 15:06
Bonjour,

Débutant l'apprentissage de la programmation avec Python, je rencontre un petit problème dans l'exécution d'un petit script visant à compter le nombre de fois où la lettre "e" apparaît dans une chaîne de caractère définie au départ.

Si quelqu'un pouvait m'expliquer où se trouve l'erreur, je lui en serais très reconnaissant car je ne comprends pas du tout le problème.

Voici le script :


string="Salut tout le monde, comment allez-vous?"
long=len(string)
a=0
compteur=0

while (a<long+1):
if (string[a]=="e"):
compteur=compteur+1
a=a+1
else:
a=a+1

print("La chaîne de caractère contient", compteur, "lettre(s) \"e\"")


Le message d'erreur qui m'est donné est le suivant :

if (string[a]=="e"):

IndexError: string index out of range

Merci d'avance pour vos lumières!

1 réponse

Bon, je vais répondre tout seul à ma question ;-)

Comme quoi, une bonne pause suffit parfois à y voir plus clair !

Je n'ai pas tenu compte du fait que les numéros des positions dans la chaîne de caractère commencent par 0 et donc que le numéro de ma dernière position sera donc inférieur de 1 par rapport au nombre de caractères présent dans la chaine.

Il convient donc de modifier l'introduction de la boucle avec while comme suit :

while (a<long):

Je ne sais pas si j'ai été très clair... Bref, joli piège à débutant hahaha

Merci quand même à tous :)
3