No shit, Sherlock! That's why you test your shit.
That's why you test your shit and use static typing.
On the other hand, I've written Python modules the same lines long (implementing 10 times more functionality, and written in a bit less time) that work right from the start or right after fixing a couple of syntax errors.
Uh, yeah. Strange that you should bring Python up, since I earn my living working on a mid-size project written in that language. By mid-size I'm referring to 50MB of code just for the section I'm working in.
The main reason the thing has managed to scale to this size is largely thanks to a number of hacks put in place to fake static typing, and since these checks occur at run-time, it really puts a damper on our development pace.
The sooner you catch the errors, the better. Too restrictive a type system and you're in for some pain, but too far opposite is just foolhardy. At the very least Python ought to rip off my() and use strict from Perl. The very bare least.
As for that productivity boost you saw: that's not due to dynamic typing. If that's the conclusion you drew, I suggest thinking a bit more on the differences between Python and C.