Problem with the "for" loop syntax

Chris Angelico rosuav at gmail.com
Thu Jun 20 11:45:27 EDT 2013


On Thu, Jun 20, 2013 at 11:55 PM, Neil Cerutti <neilc at norwich.edu> wrote:
> On 2013-06-20, Joshua Landau <joshua.landau.ws at gmail.com> wrote:
>> On 20 June 2013 04:11, Cameron Simpson <cs at zip.com.au> wrote:
>>> Also, opening-and-not-closing a set of brackets is almost the
>>> only way in Python to make this kind of error (syntax at one
>>> line, actual mistake far before).
>>>
>>> See if your editor has a show-the-matching-bracket mode.
>>> If you suspect you failed to close a bracket, one approach is
>>> to go _below_ the syntax error (or right on it) and type a
>>> closing bracket. Then see where the editor thinks the opening
>>> one is.
>>
>> Thanks for that, that's quite an ingenious technique.
>
> The auto-indent feature of Vim catches this type of syntax error,
> and I imagine other good autoindent support will do the same.
> After I press enter and the following line's indent isn't what I
> expect, it is nearly always due to a missing bracket, quote or
> colon.
>
> So if you press enter and the autoindent is unexpected, don't
> just press space or backspace to fix it. It's usually a sign of
> an earlier syntax error, so look for that first.

Yes, though editors (like everything else!) can be buggy - SciTE, for
instance, has a bug with handling two adjacent braces in C code:

void dummy_function() {}
    //SciTE will indent after that line

But autoindentation is a *hugely* valuable feature, because it gives
INSTANT feedback. You hit enter, the line is indented, you expected no
indent, problem found. And I've even used it as a means of probing -
if there's a problem in this area somewhere, I just go to the middle
of the area, hit enter to insert a blank line, and see if the
indentation is wrong. If it is, the problem's in the top half, else
the problem's in the bottom half. That is: The problem is in the
top-if-indentation-wrong-else-bottom half, using Python's ternary
syntax. Or the (indentation-wrong? top: bottom) half, in C notation.
Or... okay, I'll stop now.

ChrisA



More information about the Python-list mailing list