[Python]Compter occurence d'un caractère

Fermé
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 10 juil. 2004 à 01:09
 hala - 31 mai 2017 à 23:13
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

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
10 juil. 2004 à 20:10
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
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
10 juil. 2004 à 20:08
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.
2
merci
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 juil. 2004 à 20:18
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 :-)
2
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 juil. 2004 à 20:19
Et je ne connaissais pas non plus count() tient :-)

Décidément ya beaucoup de choses qui m'attendent.... :-)
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 juil. 2004 à 20:03
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
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
10 juil. 2004 à 21:08
:-)
0