On 16/04/2015 18:10, Steven D'Aprano wrote:
On Thu, 16 Apr 2015 08:51 pm, BartC wrote:
On 16/04/2015 06:49, Steven D'Aprano wrote:
On Thursday 16 April 2015 14:07, Blake McBride wrote:
Is there a utility that will allow me to write Python-like code that
includes some block delimiter that I can see, that converts the code
into
runnable Python code? If so, where can I find it?
No more bugs from accidentally forgetting to use optional braces!
You get bugs instead from mistakenly using the wrong indentation or
losing the correct indentation (accidentally pressing the wrong key for
example).
That's nothing! Python gives you absolutely no protection from accidentally
typing:
x += 1
when you actually wanted:
y -= 2
As I'm sure you will agree, it is an easy mistake to make.
I meant hitting Backspace or Delete.
But also, sometimes you post code to Usenet and you find leading tabs
have been stripped out. With Python code, that's problematical.
I'm not impressed by arguments "braces protect you from accidentally hitting
tab too many times (or too few)". Um, okay. Don't people read their own
code? How do you not notice that you've indented it wrongly?
Take:
if cond:
stmt1
stmt2
stmt3
and:
if cond:
stmt1
stmt2
stmt3
which one is correct? Is there a tab too many, or one too few? Or two
too many? Now, much as I dislike C-style braces, at least it is a little
more resilient:
if (cond) {
stmt1;
stmt2;
stmt3;
}
or:
if (cond) {
stmt1;
stmt2;
}
stmt3;
One 'if' clearly has three statements, and the other has two, and you
are confident enough to fix the tabbing errors without consequences.
while braces without indentation are horribly opaque:
code code code code code code code { code } code code code { code
code code { code code code } code { code { code { code code code
{ code code } code code { code code } } } } code } code
It seems to work well enough with expressions:
x = (a * (b+c) * d) / e
--
Bartc
--
https://mail.python.org/mailman/listinfo/python-list