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@'))
Это потому, что возвращаемое значение находится внутри одного из циклов, поэтому перед печатью возвращенного значения вы выполняете только первую итерацию. Вам нужно поместить возврат в основу функции - вне циклов.
def strip_punctuation(word): for i in punctuation_chars: if i in word: word = word.replace(i, '') return word
Когда вы вызываете return, функция закрывается. Поэтому, когда я первый раз набираю слово и вы заменяете его, вы возвращаете слово, и функция завершается. Если вы должны заполнить l oop и затем вернуть слово, то оно должно работать.
т.е.
Вы возвращаете word после проверки первого элемента, что означает, что будет удален только первый знак пунктуации '. Замените функцию на эту.
word
'