使用If语句的布尔赋值

jam*_*ean -2 python if-statement

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

我们的想法是假设我们使用'tag'监视标记,并通过比较每个char的值来修改它的值.

问题是,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
Run Code Online (Sandbox Code Playgroud)

运行:

remove_tag("<h1>Title</h1>")
Run Code Online (Sandbox Code Playgroud)

生产:

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
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么打印'结束标记'但是'False'值没有被赋值给标记.

DSM*_*DSM 9

这些行是比较,而不是作业:

tag == True
tag == False
Run Code Online (Sandbox Code Playgroud)

你要

tag = True
Run Code Online (Sandbox Code Playgroud)