title: Is Python interpreted, or compiled, or both?
body: <p>From my understanding:</p>
  
  <p>An <strong>interpreted</strong> language is a high-level language run and executed by an interpreter (a program which converts the high-level language to machine code and then executing) on the go; it processes the program a little at a time.</p>
  
  <p>A <strong>compiled</strong> language is a high-level language whose code is first converted to machine-code by a compiler (a program which converts the high-level language to machine code) and then executed by an executor (another program for running the code).</p>
  
  <p>Correct me if my definitions are wrong.</p>
  
  <p>Now coming back to Python, I am bit confused about this. Everywhere you learn that Python is an interpreted language, but it's interpreted to some intermediate code (like byte-code or IL) and <em>not</em> to the machine code. So which program then executes the IM code? Please help me understand how a Python script is handled and run.  </p>