Common Python Dry-Run Mistakes and How to Avoid Them
Dry-run questions are often less about syntax and more about attention to detail. Candidates lose points not because they cannot read code, but because they miss a subtle state change, skip a frame, or assume the wrong scope.
Mistake 1: Ignoring function frames
A very common mistake is treating every variable lookup as if it happens in the same frame. In reality, Python creates a new local frame for each function call. If you do not track that frame carefully, you will misread variable values and output.
Mistake 2: Forgetting that defaults evaluate once
def f(a, lst=[]):
lst.append(a)
return lst
print(f(1))
print(f(2))The second call does not start with a fresh empty list. The default list object is created once when the function is defined, so the state carries over. That is why trace tables matter so much: they force you to track object identity and mutation over time.
Mistake 3: Mixing up mutation and rebinding
Mutating an existing object and rebinding a name are not the same operation. One changes the object in place; the other changes which object the name points to. Mixing those up is one of the fastest ways to get a dry-run question wrong.
Continue learning
The Complete Guide to Tracing Python Code (With Examples)
Learn how to build trace tables, predict stdout, and pass Python dry-run interview questions.
10 Python Output Questions for Interview Preparation
Ten classic Python output patterns that appear on technical phone screens, with tracing tips.
How to Dry Run Python Code: Step-by-Step Method
A repeatable five-step method for predicting Python program output under interview pressure.