eval() 函数用来执行一个字符串表达式,并返回表达式的值

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计算

猜你喜欢

转载自blog.csdn.net/qq_40801709/article/details/106520302