Recherche d'un mot au sein d'une chaine

Incompréhension

a marqué ce sujet comme résolu.

Bonjour à tous,

J'utilise Python 3.5 et Ipython notebook, cette fonction fait partie d'un programme que je crée avec la bibliothèque Pandas

J'ai du mal à comprendre le résultat de cette dernière ( qui me semble pourtant simple arf ) alors je vous l'expose. D'autre part je n'ai pas encore appris comment utiliser le module re donc je fais cela avec des for et des if !

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#Recherche d'un terme dans une phrase ' député ' ou 'sénateur'
def dep_sen (phrase):
        a=0
        mots = ["Député","Députe","Deputé","Depute","député","deputé","députe","depute","Sénateur","Senateur","sénateur","senateur"]
        for i in mots:

            if i in phrase:
                a+=1
#Ce print est fait pour tester ma fonction 
                print (i)
        print ('Il y a donc {} occurence(s)'.format(a))

or quand j'écris dep_sen ("députédeputedeputeSénateur ") il ne me trouve pas le bon nombre d’occurrence ( il s'arrête à 3 et parfois il en oublie … ) j'ai essayé bcp de choses mais j'ai l'impression que le compteur bloque à 3 et compte "mal" Et je ne comprends pas pourquoi.

Je vous remercie

Je m'excuse à l'avance si la solution est simple mais cela fait 2 jours et je n'ai toujours pas trouvé de solution.

Merci pour la piste

En te répondant ( j'aillais te dire "oui mais j'utilise for qui itère à chaque fois") ça a fait tilt.

A chaque itération de "i" dans 'for' je cherche le mot mais une fois que ce mot est passé je ne revient plus en arrière et ma fonction ne le reverra plus même s'il est présent, d’où les résultats aberrants que je trouvais …

Merci beaucoup !!!

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte