Прежде всего, вы ничего не печатаете. Ваша функция всегда возвращает False
, но без print
результат отбрасывается.
Во-вторых, у вас есть ошибки c. Наиболее очевидным является то, что ('(', ')')
никогда не равно '(,)'
. И если вы не проверяете, является ли стек пустым во время всплывающего окна, то в случае ввода, например '}'
, вы получите ошибку. И str(exp[i])
является избыточным, exp[i]
уже является строкой. Наконец,
if condition:
return True
else:
return False
является антипаттерном; Вы можете просто сказать return condition
(или, если это не логическое значение, и вы хотите, чтобы оно было, return bool(condition)
; в этом случае не требуется, так как результат сравнения на равенство всегда является логическим).