我正在用python编写代码,该代码使用堆栈检查HTML文档中正确的打开和关闭标签,并且我感到困惑,因为当我运行所拥有的程序时什么也没打印。也可以是我正在使用的编辑器,但是我不确定我哪里出错了。
我已经创建了一个堆栈,该堆栈应该遍历HTML代码中的每一行并查找我已经记下的标签,但是也没有任何内容可以打印出来/我不确定是否应该打印出任何内容,因为HTML代码是否均衡?
仅作为我代码外观的参考,我认为最后几行是搞砸了,但我不确定它到底是什么
def check_html_balance(text):
text = '''
<html>
<head>
<title>
Example
</title>
</head>
<body>
<h1> Hello, world </h1>
</body>
</html>'''
class Stack:
s = Stack()
x = text.replace('<', ' <')
y = x.replace('>', '> ')
a = []
for w in y.split():
if re.search('</''', w):
a.append(w)
b = [w for w in a if "/" not in w]
c = [w for w in a if "/" in w]
for w in y.split():
if w in b:
s.push(w)
elif not s.is_empty() and (w in c) and w.replace('/', '') == s.peek():
s.pop()
print(s)
check_html_balance(text)
如果html是平衡的,它应该打印出true,否则,应该打印出false。我意识到我没有在任何地方添加任何东西,这很有意义,为什么我没有输出。我会把它们放在if语句中,还是将它们放到最后?