Python was designed to be easy to understand and fun to use (its name came from Monty Python so a lot of its beginner tutorials reference it).
Fun is a great motivator, and since you'll be able to build prototypes and tools quickly with Python, many find coding in Python a satisfying experience.
Easy to Understand
Being a very high level language, Python reads like English, which takes a lot of syntax-learning stress off coding beginners.
Python handles a lot of complexity for you, so it is very beginner-friendly in that it allows beginners to focus on
learning programming concepts and not have to worry about too much details
As a dynamically typed language, Python is really flexible. This means there are no hard rules on how to build features,
and you'll have more flexibility solving problems using different methods (though the Python philosophy encourages
using the obvious way to solve things). Furthermore, Python is also more forgiving of errors, so you'll still be able to compile and
run your program until you hit the problematic part.
Not Easy to Maintain
Because Python is a dynamically typed language, the same thing can easily mean something different depending on the context.
As a Python app grows larger and more complex, this may get difficult to maintain as errors will become difficult to track down and fix,
so it will take experience and insight to know how to design your code or write unit tests to ease maintainability.
As a dynamically typed language, Python is slow because it is too flexible and the machine would need to do a lot of referencing to make
sure what the definition of something is, and this slows Python performance down.
At any rate, there are alternatives such as PyPy that are faster implementations of Python. While they might still not be as fast as
Java, for example, it certainly improves the speed greatly.