[Python]Compter occurence d'un caractère

kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -  
 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.....

5 réponses

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  2. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
    1. hala
       
      merci
      0
  3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
    1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Et je ne connaissais pas non plus count() tient :-)

      Décidément ya beaucoup de choses qui m'attendent.... :-)
      0
  4. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    :-)
    0