Run it
The evaluator, on two standard expressions.
Pop order, with the case that hides the bug printed beside the case that reveals it.
The division that differs on negatives, and the two ways an expression can be malformed.
Why postfix needs no parentheses
In infix, 4 + 13 / 5 is ambiguous without precedence rules, and (4 + 13) / 5 needs brackets to say the other thing. Postfix encodes the order in the token sequence itself, so there is nothing left to disambiguate. And that is why it evaluates with a stack and no parser.
The rule is mechanical. A number has no dependencies, so it waits on the stack. An operator's operands are always the most recent unconsumed values. This is exactly what "top of the stack" means.
The two lines that are wrong in most first attempts
Pop order. b = pop(). A = pop() and then a - b. Getting it backwards gives the right answer for + and * and the negated or reciprocal answer for - and / — which is why the bug survives the first test case anybody tries.
Division. Python's // floors. So -7 // 2 is -4. Postfix, like C and like every version of this problem, truncates toward zero and wants -3. int(a / b) gives that; math.trunc(a / b) says it more by name. For positive operands the two agree, so this is another bug that only appears on the test case with a negative number in it.
What the stack depth tells you
The depth is a validity check you get for free. Every number adds one; every binary operator removes one net. So a well-formed expression of n numbers and n−1 operators ends at depth 1.
Two failure modes follow. And an interviewer may ask for both. Popping from an empty stack means an operator with too few operands — malformed. Finishing with more than one value means numbers that nothing consumed, which is also malformed. Checking both is three lines and is the difference between a solution and a reliable one.
The follow-up: converting from infix
"How would you get postfix in the first place?" The shunting-yard algorithm. And it is the same structure twice: one stack for operators, one output list. Numbers go straight to the output; an operator pops every operator of higher or equal precedence before pushing itself; brackets push and pop. Worth being able to name even if you are not asked to write it. It is the reason postfix exists as an intermediate form.
Edge cases to raise
Volunteering these is most of what separates a correct answer from a good one.
Division by zero. int(a / b) raises ZeroDivisionError. Decide whether that propagates or becomes a domain error of your own, and say so rather than discovering it.
Multi-digit and negative literals. int(t) handles both, but a tokeniser that splits on characters rather than whitespace will turn -4 into an operator and a number.
A single number is a valid expression. ["42"] should return 42. And a loop that requires at least one operator will not.