Trouver toutes les positions d'une lettre dans une chaine

Zgo - Modifié le 24 avril 2021 à 18:03
Gandalfix Messages postés 84 Date d'inscription vendredi 12 juin 2020 Statut Non membre Dernière intervention 18 avril 2024 - 24 avril 2021 à 06:12
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
A voir également:

2 réponses

Gandalfix Messages postés 84 Date d'inscription vendredi 12 juin 2020 Statut Non membre Dernière intervention 18 avril 2024 7
24 avril 2021 à 06:02
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).
0
Gandalfix Messages postés 84 Date d'inscription vendredi 12 juin 2020 Statut Non membre Dernière intervention 18 avril 2024 7
24 avril 2021 à 06:12
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.
0
Rejoignez-nous