Certainly exceptions vs assertions is a confusing topic. Once in a while I read about it because the 'correct' use of both is usually some diffuse.

Yo should look at:
https://leap.se/code/issues/3007
http://stackoverflow.com/questions/944592/best-practice-for-python-assert

And let me know if you found something new on this topic.