Python 带If语句的布尔赋值

Python 带If语句的布尔赋值,python,if-statement,Python,If Statement,我试图解决一个问题,从字符串中删除HTML标记。我意识到正则表达式是一个更好的解决方案,但我想找出这里出了什么问题 我们的想法是假设我们使用“tag”监视标记中的存在,并通过比较每个字符的值来修改它的值 问题是,标记的值从未更改: def remove_tag(s): tag = True for c in s: print "c = %s" % c if (c == '<'): print 'start_tag'

我试图解决一个问题,从字符串中删除HTML标记。我意识到正则表达式是一个更好的解决方案,但我想找出这里出了什么问题

我们的想法是假设我们使用“tag”监视标记中的存在,并通过比较每个字符的值来修改它的值

问题是,标记的值从未更改:

def remove_tag(s):
    tag = True

    for c in s:
        print "c = %s" % c
        if (c == '<'):
            print 'start_tag'
            tag == True
            print tag
        elif (c == '>'):
            print 'end tag'
            tag == False
            print tag
def移除标签:
tag=True
对于s中的c:
打印“c=%s”%c
如果(c=''):
打印“结束标记”
标记==False
打印标签
运行:

remove_tag("<h1>Title</h1>")
删除标签(“标题”)
产生:

c = <
start_tag
True
c = h
c = 1
c = >
end tag
True
c = T
c = i
c = t
c = l
c = e
c = <
start_tag
True
c = /
c = h
c = 1
c = >
end tag
True
None
c=<
开始标签
真的
c=h
c=1
c=>
结束标记
真的
c=T
c=i
c=t
c=l
c=e
c=<
开始标签
真的
c=/
c=h
c=1
c=>
结束标记
真的
没有一个

我对为什么打印“结束标记”感到困惑,但没有将值“False”分配给标记。

这些行是比较,而不是分配:

tag == True
tag == False
你想要

tag = True

您可能希望避开将正则表达式与HTML结合使用的主题,因此…;)