punctuation_chars = ["'", '"', ",", ".", "!", ":", ";", '#', '@'] def strip_punctuation(word): for i in punctuation_chars: if i in word: word = word.replace(i, '') return word print(strip_punctuation('GH.GH,GHGH:GHGH;GHGHG@'))
3 Réponses :
Vous retournez Word code> après avoir vérifié le premier élément, ce qui signifie que la première marque de ponctuation
' code> serait dépouillé. Remplacez la fonction avec ceci.
def strip_punctuation(word):
for i in punctuation_chars:
if i in word:
word = word.replace(i, '')
return word
C'est parce que le retour est à l'intérieur de l'une des boucles, vous obtenez donc la première itération effectuée avant d'imprimer la valeur renvoyée. Vous auriez besoin de mettre le retour à la base de la fonction - hors des boucles.
def strip_punctuation(word): for i in punctuation_chars: if i in word: word = word.replace(i, '') return word
Lorsque vous appelez Retour, la fonction est sortie. Par conséquent, la première fois que je suis en mot et que vous le remplacez, vous retournez le mot et la fonction sort. Si vous deviez compléter la boucle, puis retournez le mot, cela devrait fonctionner.
I.e. P>
def strip_punctuation(word): for i in punctuation_chars: if i in word: word = word.replace(i, '') return word
Votre indentation du retour est le problème.