There are syntax errors that will prevent your Python code from running
x = 2 print(x) if x > 3
File "examples/other/syntax_error.py", line 4 if x > 3 ^ SyntaxError: invalid syntax
There are other syntax-like errors that will be only caught during execution
from __future__ import print_function x = 2 print(x) print(y) y = 13 print(42)
2 Traceback (most recent call last): File "compile.py", line 5, in <module> print y NameError: name 'y' is not defined
Python code is first compiled to bytecode and then interpreted. CPython is both the compiler and the interpreter. Jython and IronPython are mostly just compiler to JVM and CLR respectively.