On Sat, Feb 4, 2017 at 4:40 PM, David <bouncingc...@gmail.com> wrote: > On 5 February 2017 at 09:02, boB Stepp <robertvst...@gmail.com> wrote: >> py3: a >> ['Mary', 'had', 'a', 'little', 'lamb', 'break'] >> py3: for w in a: >> ... print(w) >> ... print('Huh?') >> File "<stdin>", line 3 >> print('Huh?') >> ^ >> SyntaxError: invalid syntax >> >> I don't understand why this throws a SyntaxError. If I wrap >> essentially the same code into a function it works: > > From [1]: "When a compound statement is entered interactively, it must > be followed by a blank line to indicate completion (since the parser > cannot guess when you have typed the last line). Note that each line > within a basic block must be indented by the same amount." > > Does that help?
Not really. I do not understand why I can define a function in the interactive interpreter and nest (apparently) any number of for loops, if-elif-else constructs, etc., and as long as I get the indentation of each block correct, it will accept it. But apparently if I start off with something which is by definition multiline like typing in a for loop, I cannot continue the multiline statements with something outside the for loop even if the indentation indicates that the following statement is not part of the for loop above. I can accept this, but I do not understand why this can't be parsed correctly by the interpreter solely based on the indentation and lack of indentation being used. C'est la vie Python! -- boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor