Posez votre question Signaler

[Python]Compter occurence d'un caractère

kilian 8802Messages postés 19 septembre 2003Date d'inscription 2 juillet 2011Dernière intervention - Dernière réponse le 10 juil. 2004 à 21:08
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.....
Lire la suite 

[Python]Compter occurence d'un caractère »

6 réponses
Réponse
+3
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
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"


Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 :-)
kilian- 10 juil. 2004 à 20:19
Et je ne connaissais pas non plus count() tient :-)

Décidément ya beaucoup de choses qui m'attendent.... :-)
Ajouter un commentaire
Réponse
+0
moins plus
:-)
Ajouter un commentaire
Ce document intitulé « [Python]Compter occurence d'un caractère » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?