Rechercher : dans
Par :

[Python]Compter occurence d'un caractère

Dernière réponse le 10 jui 2004 à 21:08:26 kilian, le 10 jui 2004 à 01:09:20 
 Signaler ce message aux modérateurs

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.....

Meilleures réponses pour « [Python]Compter occurence d'un caractère » dans :
Compter les mots dans un document (OpenOffice.org ou Word) VoirIl est parfois utile de pouvoir compter le nombre de mots ou de caractères dans un document. Les deux principales suites bureautiques permettent de le faire très simplement : Avec Word Avec OpenOffice.org Avec Word Ouvrez votre document...
[MSN] Compte MSN Messenger piraté / Piratage de compte Hotmail VoirPiratage de compte Vous vous êtes fait pirater votre compte MSN Messenger ou bien votre compte hotmail a été hacké et vous souhaitez absolument le récupérer ! Nettoyage de l'ordinateur Compte inaccessible - Contact du support MSN Attention...
[Outlook Express] Relever/consulter boite hotmail ou compte MSN VoirIl est possible de relever ses messages sur un compte Hotmail ou MSN à l'aide du client de messagerie Outlook Express 5 ou supérieur. Attention: depuis le premier trimestre 2005 cette option est payante ! Configuration d'Outlook Express Dans le...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Fichiers et répertoires VoirLes fichiers sous DOS Sur un ordinateur les informations sont stockées dans des fichiers. Lorsqu'on exécute un programme, MS-DOS traite les informations situées dans le fichier et les transmet au système. Sous MS-DOS chaque fichier peut être aussi...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...

1

kilian, le 10 jui 2004 à 20:03:50

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

Répondre à kilian

2

sebsauvage, le 10 jui 2004 à 20:08:17
  • +1

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.

Répondre à sebsauvage

3

sebsauvage, le 10 jui 2004 à 20:10:48
  • +1

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"


Répondre à sebsauvage

4

kilian, le 10 jui 2004 à 20:18:34

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 :-)

Répondre à kilian

5

kilian, le 10 jui 2004 à 20:19:44

Et je ne connaissais pas non plus count() tient :-)

Décidément ya beaucoup de choses qui m'attendent.... :-)

Répondre à kilian

6

 sebsauvage, le 10 jui 2004 à 21:08:26

:-)

Répondre à sebsauvage
Collection CommentÇaMarche.net