Both languages are meant for rather different purposes, and consequently have very different feature sets. It's hard to say that one is "richer" than the other without a set of criteria by which one can judge what constitutes "richer".
C++ is (IMO) better for more performance-sensitive and generally larger-scale applications, though it can do small-scale applications very well too. As a compiled language with excellent optimizing compilers, C++ is one of the fastest languages in existence (inb4 Java fanboys yakking on about JIT).
Python is a good language for rapid development of code that isn't highly performance sensitive. It's equally good for small-scale applications and throw-away scripts. Assuming no platform-specific code is used, Python is also inherently easier to run on other systems than C++ due to being interpreted vs compiled.
C++ is definitely the more complex language in terms of syntactical features offered, but that's not inherently a good thing when the interactions between language features cause unintuitive behavior (and that DOES happen).
C++ doesn't have a built-in equivalent to eval, mostly because it would be really freaking tedious to implement. It's not impossible to do in C++, though for C++'s intended applications I'm not entirely sure why you'd need to.
Python's standard library offers more facilities for day-to-day tasks (directory traversal, file compression, networking, XML parsing, etc). C++ leaves these to the user to either implement themselves or find a library to do for them (although C++1Z/C++17 will probably include networking). Ironically, this isn't inherently a bad thing, as a lack of a much-desired feature in a popular language will spawn various libraries for that feature, each doing something a bit differently, giving you choices.
EDIT:
LBT wrote: |
---|
there are many languages which can be used high and or low level, python included |
Python should NOT be used for low-level programming, even if there are ways to compile it.
-Albatross