Mon programme consiste à vérifier si la phrase d'entrée contient not
suivi de bad
et de le remplacer par good
. Par exemple, si la phrase contenue not bad
sans aucune autre chaîne entre not
et bad
, j'ai pu les remplacer par good
comme indiqué dans le code ci-dessous:Vérifiez si certaines chaînes sont présentes dans une phrase et remplacez-les par une autre chaîne en utilisant Python 3.6
s = 'The day is not bad'
s = s.replace('not bad', 'good')
print(s)
et la sortie était:
>>> The day is good
Le problème se pose lorsqu'il existe un autre mot (ou mots) entre not
et bad
. Jetez un oeil aux codes j'ai essayé:
l = ['not', 'bad']
s = 'The day is not so bad'
if l in s:
s = s.replace(l,'good')
Il THROWED une erreur comme suit lorsque le résultat attendu doit être The day is good
:
Traceback (most recent call last):
File "<ipython-input-69-0eb430659d1e>", line 3, in <module>
if l in s:
TypeError: 'in <string>' requires string as left operand, not list
J'ai essayé quelque chose comme ça aussi:
list_ = ['not', 'bad']
if any(word in 'The day is not at all bad' for word in list_):
s = s.replace(s,'good')
Mais la sortie de errorsome que j'ai eu pour le code ci-dessus était:
>>> s
>>> good
OIEau, la phrase entière a été remplacé par good
. Pouvez-vous suggérer ce qu'il faut faire si je devrais obtenir quelque chose comme celui ci-dessous:
>>> s = 'The day is not at all bad' #input
>>> print(output)
>>> 'The day is good' # the desired output
Enfin, je suis ce que vous voulez, je l'ai mis à jour ma réponse, s'il vous plaît vérifier. –