Python is an interpreted language. This means that Python code is executed line by line by an interpreter, rather than being compiled into machine code beforehand. The Python interpreter converts the code into bytecode, which is then executed by the Python virtual machine (PVM).
However, Python does have a compilation step where it compiles the source code into bytecode (.pyc files) for optimization and faster execution. So, while Python is primarily interpreted, it involves an intermediate compilation stage. This hybrid approach allows for easier debugging and platform independence.