[Python]Compter occurence d'un caractère

[Fermé]
Signaler
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
-
 hala -
Bonjour, j'ai un problème avec un exercice de python. Je dois compter lle nombre de lettres "e" dans une phrase donnée par l'utilisateur.
Voilà le script:

e=0
i=0
phrase=raw_input()
lettre="e"

while (i <= len(phrase)):
    if phrase[i]==lettre:
        e=e+1
    i=i+1

print "Il ya", e, '\"e\"',"dans votre phrase"


Et le debogeur me situe l'erreur dans la condition
if phrase[i]==let
mais alors là je vois pas du tout.....
A voir également:

5 réponses

Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 564
Note que:
Une chaîne de caractères est aussi un objet sur lequel on peut faire une itération.
Tu pourrais donc faire:

e=0
phrase=raw_input()
malettre="e"

for lettre in phrase:
    if lettre==malettre:
        e=e+1

print "Il ya", e, '\"e\"',"dans votre phrase"




Ou encore plus court:
phrase=raw_input()
malettre="e"

print "Il ya", phrase.count(malettre), '\"e\"',"dans votre phrase"


5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 564
C'est normal.

Il faut que tu mette < et non pas <=

En effet quand tu fais phrase[i], l'index commence à zéro.

a='ABC'
a[0] vaut 'A'
a[1] vaut 'B'
a[2] vaut 'C'
len(a) vaut 3
Donc faire a[3] fera un IndexError.
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 520
Aaah oky !! Merci pour la réponse, je me décourageais un peu.... :-)

Etant débutant, je ne sais pas encore comment utiliser for, mais ça ne saurait tarder, merci encore :-)
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 520
Et je ne connaissais pas non plus count() tient :-)

Décidément ya beaucoup de choses qui m'attendent.... :-)
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 520
Voici ce que me renvoie vraiment le shell en fait :
File "test.py", line 7, in ?
    if phrase[i]==lettre:
IndexError: string index out of range
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 564
:-)