Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Python’s high-level built-in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together. The Python interpreter and the extensive standard library are available in source or binary form without charge for all major platforms and can be freely distributed. Python’s simple and easy to learn syntax highlights readability and therefore reduces the cost of program maintenance. Python supports modules and packages, which encourages program modularity and code reuse. 

The increased productivity of Python makes it an excellent choice among programmers. Since there is no compilation step, the edit-test-debug cycle is incredibly fast. Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault. Instead, when the interpreter discovers an error, it raises an exception. When the program doesn’t catch the exception, the interpreter prints a stack trace. A source-level debugger allows inspection of local and global variables, evaluation of arbitrary expressions, setting breakpoints, stepping through the code a line at a time, and so on. 

The debugger is written in Python itself, testifying to Python’s introspective power. On the other hand, often the quickest way to debug a program is to add a few print statements to the source: the fast edit-test-debug cycle makes this simple approach very effective. Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming. 

Python is often described as a “batteries included” language due to its comprehensive standard library. Although Python started out as a scripting language to glue code together, it has grown to be one of the primary languages used by a lot of developers. As small devices have limited computational power and memory, developers had to get creative to make life easy, so they ended up choosing Python. As a result, it has grown in importance within embedded devices space while enabling developers to create apps that are able to deliver comprehensible data mining results. Most of the popular microcontrollers are also utilizing Python. For example, there are even small versions like the MicroPython board (only a few square inches) and software packages.