Python - Vérifier si un mot est dans une chaîne de caractères

Je travaille avec Python v2, et j'essaie de savoir si l&#8217on peut dire si un mot se trouve dans une chaîne de caractères.

J'ai trouvé quelques informations sur la façon d'identifier si le mot est dans la chaîne - en utilisant .find, mais existe-t-il un moyen de faire une déclaration IF. J'aimerais avoir quelque chose comme ce qui suit :

if string.find(word):
    print 'success'

Merci pour votre aide.

Solution

Qu'est-ce qui ne va pas avec :

if word in mystring: 
   print 'success'
Commentaires (5)
if 'seek' in 'those who seek shall find':
    print('Success!')

mais gardez à l'esprit que cela correspond à une séquence de caractères, pas nécessairement à un mot entier - par exemple, 'word&#39 ; in 'swordsmith' est True. Si vous souhaitez uniquement faire correspondre des mots entiers, vous devez utiliser des expressions régulières :

import re

def findWholeWord(w):
    return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search

findWholeWord('seek')('those who seek shall find')    # -> 
findWholeWord('word')('swordsmith')                   # -> None
Commentaires (5)

find renvoie un nombre entier représentant l'index de l'endroit où l'élément recherché a été trouvé. S&#8217il n&#8217est pas trouvé, il renvoie -1.

haystack = 'asdf'

haystack.find('a') # result: 0
haystack.find('s') # result: 1
haystack.find('g') # result: -1

if haystack.find(needle) >= 0:
  print 'Needle found.'
else:
  print 'Needle not found.'
Commentaires (0)