why it is invalid syntax?
Zara
yozara at terra.es
Thu Nov 22 01:58:51 EST 2007
On Thu, 22 Nov 2007 00:00:16 -0600, alf <ask at me.xs4all.nl> wrote:
>Hi,
>
>I wonder why it is an invalid syntax:
>
>
> >>> if 1: if 1: if 1: print 1
> File "<stdin>", line 1
> if 1: if 1: if 1: print 1
>
>
>or
>
> >>> if 1: for i in range(10): print i
> File "<stdin>", line 1
> if 1: for i in range(10): print i
>
>I would expect one could nest :
>
You may take a look at python documentation, Language reference, 7.
Compound statement. It clearly states that what follows the : of
if,while,for... if it is not a new line, it should be a list of simple
statements. Son no there is no : nesting.
>compound_stmt ::= if_stmt
> | while_stmt
> | for_stmt
> | try_stmt
> | with_stmt
> | funcdef
> | classdef
>suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT
>statement ::= stmt_list NEWLINE | compound_stmt
>stmt_list ::= simple_stmt (";" simple_stmt)* [";"]
>
Regards,
Zara
More information about the Python-list
mailing list