Nur simple statements can appear in a semicolon-separate statement list:
stmt_list ::= simple_stmt (";" simple_stmt)* [";"]
Eine if
Anweisung ist eine zusammengesetzte Anweisung, es ist also ungültige Syntax es zu schließen.
Wenn Sie zusammengesetzte Anweisungen in einer durch Semikola getrennten Liste zulassen, führt dies zu Mehrdeutigkeiten. Dies gilt Syntax:
if condition: a = 1; b = 1
Beide Zuweisungen nur dann ausgeführt werden, wenn die condition
wahr ist, und das ist, wie die meisten Menschen intuitiv die Aussage lesen würde. Wenn wir
erlaubt
c = 1; if condition: a = 1; b = 1
wäre es für die Leser des Codes unklar geworden, ob der b = 1
Teil der if
Aussage ist oder nicht.
Python verwendet Einrückung, um Code-Suites zu begrenzen, und Sie können Einrückung nicht in einer durch Semikola getrennten Anweisungsliste verwenden.
Sie haben die Fehlermeldung nicht eingefügt, aber es ist wahrscheinlich ein 'SyntaxError'. Und nein, du kannst das alles nicht in eine einzige Zeile schreiben. Sie können Code mit derselben Bedeutung in einer einzelnen Zeile schreiben, aber nicht die gleichen Kontrollstrukturen verwenden. Und warum möchtest du? –
exec ('a = 1 \ nif Wahr: \ n \ tdruck a \ nelse: \ n \ t a + = 1'); =) (bitte notieren Sie den Smiley) –
Code mit der gleichen Bedeutung in einer einzelnen Zeile wäre ' Druck 1'. –