Why not allow empty code blocks?
Rustom Mody
rustompmody at gmail.com
Sat Jul 30 08:31:34 EDT 2016
On Saturday, July 30, 2016 at 5:53:12 PM UTC+5:30, Chris Angelico wrote:
> On Sat, Jul 30, 2016 at 10:11 PM, Rustom Mody wrote:
> >> > - Poorer error catching: What was a straight syntax error is now a lint-catch (at best)
> >> > [print (x) for x in range(20)]
> >>
> >> Huh? Aside from the fact that you're constructing a useless list of
> >> Nones, what's the error?
> >
> > Huh²
> >
> > Are you seriously suggesting that python-3’s behavior below is better IN
> > THIS INSTANCE than python-2’s?
> >
> > [That there may be other reasons that outweigh this one for print-as-function
> > is not something I am disputing. I was solely disputing your ‘just’]
> >
> > Python 2.7.12 (default, Jul 1 2016, 15:12:24)
> >>>> [print(x) for x in range(10)]
> > File "<stdin>", line 1
> > [print(x) for x in range(10)]
> > ^
> > SyntaxError: invalid syntax
> >>>>
> >
> > Python 3.5.2 (default, Jul 5 2016, 12:43:10)
> >
> >>>> [print(x) for x in range(10)]
> > 0
> > 1
> > 2
> > 3
> > 4
> > 5
> > 6
> > 7
> > 8
> > 9
> > [None, None, None, None, None, None, None, None, None, None]
> >>>>
>
> I still don't understand your complaint. How is this "better/worse
> error checking"? All you're showing me is the same line of code you
> showed above, plus what it does in Py2 and Py3, which I know already.
> You haven't explained why this is such a great feature in Py2 that got
> lost in Py3.
>
> And hey. If you want to print out the numbers 0 through 9, Py3 offers
> a pretty concise way to spell that:
>
> >>> print(*range(10), sep='\n')
Heh Cute! Thanks!!
> 0
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> >>>
>
> Beat that, print statement.
What makes you think I wanted to print those numbers??
Maybe I wanted a list of 10 None-s??
Point being that when one mixes up 2 things like that its anybody’s guess
which is the primary (central) effect and which the ‘side’ effect
More information about the Python-list
mailing list