In a simulation loop (python), I have something like this: def run(extra_stuff = False): for step in range(num_steps): do_thing() if extra_stuff: do_another_thing() Here, extra_stuff is a boolean that I control when I run the simulation, but is often set to false (I use it for debugging occasionally say) If extra_stuff == False, will Python still check the if statement on every iteration? Is the interpreter smart enough to remove or "optimize away" that dead code? If not, how much of a performance penalty does this cause? I'm running a simulation with around a hundred thousand iterations, so even small optimizations might help. I'm using standard Python in jupyter notebooks. Continue reading...