簡體   English   中英

該代碼在 function 之外工作正常,但一旦進入內部,它就不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM