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