title: Cheap exception handling in Python?
body: <p>I read in an earlier <a href="https://stackoverflow.com/questions/576988/python-specific-antipatterns/577731#577731">answer</a> that exception handling is cheap in Python so we shouldn't do pre-conditional checking.</p>
  
  <p>I have not heard of this before, but I'm relatively new to Python. Exception handling means a dynamic call and a static return, whereas an <code>if</code> statement is static call, static return.</p>
  
  <p>How can doing the checking be bad and the <code>try-except</code> be good, seems to be the other way around. Can someone explain this to me?</p>