简单函数不返回字符串值

时间:2017-01-02 10:24:17

标签: python python-3.x

喂!

第一次在这里发一个问题,我通常会通过搜索找到答案,但这次我干了。

我在Python中编写一个非常简单的函数,但它拒绝返回值。基本上你应该输入HTML代码,它将删除所有的HTML标签(通过搜索<和>,然后拼接一个新的字符串)。

def pretty_print(source_code):
    article_nohtml = remove_html(source_code)

    print(article_nohtml)

def remove_html(article):
    code_starts_at = article.find('<')

    if code_starts_at != -1:
        beginning_of_article = article[:code_starts_at]
        code_ends_at = article.find('>')+1
        end_of_article = article[code_ends_at:]
        stitched_article = beginning_of_article + end_of_article
        remove_html(stitched_article)
    else:
        print(type(article))
        print(article)
        return article

#Test the function
remove_html('<p>This is a text to <strong> try the script out </strong></p>\n<p>Is this working for you?</p>')

这段代码不包含任何特别的内容,因此对我来说这是一个谜,为什么它不起作用。我添加了最后两个打印调用只是为了测试函数,它们返回类'str'和完整的字符串看起来很好但是当pretty_print函数打印文章时它只输出None。

感谢我能得到的任何帮助,这应该是直截了当的,但我可能会遗漏一些东西。

1 个答案:

答案 0 :(得分:3)

remove_html函数中,在if内,您正在对remove_html(stitched_article)进行递归调用,但是您没有返回它的值(Python将其视为None)。将其更改为:

return remove_html(stitched_article)