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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章