Compter le nombre de fois où une lettre apparaît dans une chaîne
Résolu
Ketool
-
Ketool -
Ketool -
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 :
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!
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!
A voir également:
- Compter le nombre de lettre dans un mot python
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Clavier iphone chiffre et lettre - Guide
- Mot de passe administrateur freebox ✓ - Forum Freebox
- Mot de passe administrateur - Guide
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 :)
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 :)