Trouver toutes les positions d'une lettre dans une chaine

Signaler
-
Messages postés
24
Date d'inscription
vendredi 12 juin 2020
Statut
Non membre
Dernière intervention
9 mai 2021
-
Bonjour,
J'ai un exercice proposé : soit ch une chaine, c un caractère, si c existe on affiche toutes ses positions, si c n'existe pas on affiche c n'existe pas.
Donc j'ai préparé ce code:
Ch="occurrence"
Chnee="c"
If chnee in ch:
     Pos=ch.find("c")   
     Print ("le caractère recherché est a la position:", pos)
Else:
    Print ("c n'existe pas dans ch")


Mais le problème est que Python n'affiche que la première position alors que j'ai besoin de toutes les positions.
Merci en avance

2 réponses

Messages postés
24
Date d'inscription
vendredi 12 juin 2020
Statut
Non membre
Dernière intervention
9 mai 2021
3
Bonjour,

1. Présentez mieux votre code (https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code) car là, franchement, c'est illisible.

2. Pour trouver toutes les lettres, vous pouvez :
2.1 boucler sur toute la longueur de la chaine en comparant la lettre recherchée avec toutes les lettres du mots.
2.2 Réutiliser la méthode find : la syntaxe de cette méthode est string.find(value, start, end) start et end étant optionnel, on peut donc refaire une recherche à partir de pos+1 (si pos n'est pas la dernière lettre de la chaine sur laquelle on fait la recherche).
Messages postés
24
Date d'inscription
vendredi 12 juin 2020
Statut
Non membre
Dernière intervention
9 mai 2021
3
Petite précision : Vous pouvez utiliser la méthode string.count(lettre) pour savoir combien de fois la lettre apparait dans le mot. Pratique pour faire une boucle.