使用If语句的布尔赋值

时间:2012-08-06 10:04:16

标签: 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

运行:

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

我感到困惑的是为什么打印'结束标记'但是值'False'没有被分配给标记。

1 个答案:

答案 0 :(得分:9)

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

tag == True
tag == False

你想要

tag = True