[英]The code works fine outside the function but once inside, it doesn't work
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@'))
您在檢查第一項后返回word
,這意味着只有第一個標點符號'
會被刪除。 用這個替換 function。
def strip_punctuation(word):
for i in punctuation_chars:
if i in word:
word = word.replace(i, '')
return word
這是因為返回是在其中一個循環內,所以你只能在打印返回值之前完成第一次迭代。 您需要將返回放在 function 的底部 - 不在循環中。
def strip_punctuation(word):
for i in punctuation_chars:
if i in word:
word = word.replace(i, '')
return word
當您調用 return 時,function 將退出。 因此,第一次 i 在 word 中並替換它時,您返回 word 並且 function 退出。 如果您要完成循環然后返回單詞,那么它應該可以工作。
IE
def strip_punctuation(word):
for i in punctuation_chars:
if i in word:
word = word.replace(i, '')
return word
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.