该代码在函数外部运行良好,但一旦在函数内部运行,则不起作用

问题描述 投票:0回答:3
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@'))
python python-3.x replaceall
3个回答
1
投票

您在检查了第一项后返回了word,这意味着仅会删除第一个标点符号'。替换为该函数。

def strip_punctuation(word):
    for i in punctuation_chars:
        if i in word:
            word = word.replace(i, '')
    return word

1
投票

这是因为返回值在其中一个循环中,因此,仅在打印返回值之前完成第一次迭代。您需要将返回值放在函数的基础上-循环之外。

def strip_punctuation(word):
    for i in punctuation_chars:
        if i in word:
            word = word.replace(i, '')
    return word

1
投票

当您调用return时,该功能退出。因此,当我第一次使用单词i并替换它时,您将返回单词并退出函数。如果您要完成循环然后返回单词,那么它应该起作用。

def strip_punctuation(word):
    for i in punctuation_chars:
        if i in word:
           word = word.replace(i, '')
    return word
© www.soinside.com 2019 - 2024. All rights reserved.