喂!
第一次在这里发一个问题,我通常会通过搜索找到答案,但这次我干了。
我在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。
感谢我能得到的任何帮助,这应该是直截了当的,但我可能会遗漏一些东西。
答案 0 :(得分:3)
在remove_html
函数中,在if
内,您正在对remove_html(stitched_article)
进行递归调用,但是您没有返回它的值(Python将其视为None
)。将其更改为:
return remove_html(stitched_article)