Quality is not in the language, it is in the programmer who uses it.
Even when the language is somewhat flawed a good programmer can make it work, by knowing the flaws and work around them.
When to use a certain language depends on your needs for certain aspects of a language or the environment you are working in. When developing interactive websites the logical choices are php or asp combined with html, css and javascript.
For an embedded real time system C/C++ is the logical choice for most.
Python has its use in all sorts of fields, just like all the other languages out there, but as with everything else it is as good as the weakest link. A bad programmer, will create bad code, no matter which language is used.