python -c \'import sys; print \"a\"\'
works, and
python -c \'for a in [1, 2, 3]: print a\'
works, but
<
You can only use ; to separate non-compound statements on a single line; the grammar makes no allowance for a non-compound statement and a compound statement separated by a semicolon.
The relevant grammar rules are as follows:
stmt: simple_stmt | compound_stmt
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
The ; in the simple_stmt production is the only place where semicolons are allowed to separate statements. For further details, see the full Python grammar.