Expression vs. Statement

There are a lot of explanations online for distinguishing those two concepts. As in the answers of this question says,

  • Expressions only contain identifiers, literals and operators, where operators include arithmetic and boolean operators, the function call operator () the subscription operator [] and similar, and can be reduced to some kind of “value”, which can be any Python object.
  • Statements (see 1, 2), on the other hand, are everything that can make up a line (or several lines) of Python code. Note that expressions are statements as well.

It is quite confusing to me actually. So I find the simplest way to distinguish those two is that expressions are just a part of statements. An expression represents some operation, but it cannot be executed solely by the compiler.