我想實現一個包含操作符和數字的堆棧。運營商可以是:不,和,或。該運營商正在對正則表達式匹配:Python:如何比較操作符與'不'字符串?
expression = '((NOT (2 <= 4)) OR (2 = 2))'
log_op = re.compile('NOT|AND|OR|not|and|or')
log_match = log_op.match(expression)
if log_match is not None:
operator_stack.push(log_match.group().lower())
現在我需要採取一些行動,如果我突然從堆棧這些運營商之一:
operator = operator_stack.pop()
if operator is "not":
# invert some True to False
這裏的問題是,它不會進入,如果。我不確定問題是匹配對象是否不與字符串進行比較。
'operator'的值是什麼? – thefourtheye
這意味着什麼 - 像這樣的運營商_? '運算符.__不從stdlib中? –
'if!operator:' – alfasin