eval() 函数用来执行一个字符串表达式,并返回表达式的值。
def per(expression):
level = 0
exp = ""
yunsuan = [""]
for elem in expression:
if elem == '!':
yunsuan[level] = " not "
exp = exp + " not "
elif elem == '(':
exp = exp + "("
yunsuan.append("")
level = level + 1
elif elem == ')':
exp = exp + ")"
level = level - 1
elif elem == '&':
yunsuan[level] = ' and '
elif elem == '|':
yunsuan[level] = ' or '
elif elem == ',':
exp = exp + yunsuan[level-1]
elif elem == 't':
exp = exp + "True"
elif elem == 'f':
exp = exp + "False"
print(exp)
return eval(exp)
print(per("|(f,t)"))
result: True
思路:转义然后eval计算