Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #53462

Re: semicolon at end of python's statements

Date 2013-09-02 10:29 +0200
From Antoon Pardon <antoon.pardon@rece.vub.ac.be>
Subject Re: semicolon at end of python's statements
References (5 earlier) <7wob8gywds.fsf@benfinney.id.au> <mailman.385.1377858745.19984.python-list@python.org> <52213435$0$6599$c3e8da3$5496439d@news.astraweb.com> <52239C57.9090506@rece.vub.ac.be> <5223CE1B.4040102@mrabarnett.plus.com>
Newsgroups comp.lang.python
Message-ID <mailman.474.1378110553.19984.python-list@python.org> (permalink)

Show all headers | View raw


Op 02-09-13 01:30, MRAB schreef:
> On 01/09/2013 20:58, Antoon Pardon wrote:
>> Op 31-08-13 02:09, Steven D'Aprano schreef:
>>> On Fri, 30 Aug 2013 11:32:17 +0100, Fábio Santos wrote:
>>>
>>
>>>
>>> We really are spoiled for choice here. We can write any of these:
>>>
>>> # Option 1
>>> for spam in sequence:
>>>      if predicate(spam):
>>>          process(spam)
>>>
>>
>>>
>>> Adding a fourth option:
>>>
>>> for spam in sequence if predicate(spam):
>>>      process(spam)
>>>
>>> saves absolutely nothing except a line and an indent level, neither of
>>> which are in short supply, and gains nothing in readability over
>>> Option 1.
>>
>> So what is the big difference between this situation and the following:
>>
>> | else:
>> |     if condition:
>> |         whatever
>>
>> which in python we can write:
>>
>> | elif condition:
>> |     whatever
>>
>>
>> So either is seems this was a design mistake or a line and an indent
>> level can be important enough to allow a combination of controls.
>>
> 'elif' is for cascading ifs:
> 
> if ...:
>    ...
> elif ...:
>    ...
> elif ...:
>    ...
> elif ...:
>    ...
> else:
>    ...
> 
> Without 'elif' you would be forced to write:
> 
> if ...:
>    ...
> else:
>     if ...:
>        ...
>     else:
>         if ...:
>            ...
>         else:
>             if ...:
>                ...
>             else:
>                ...
> 
> On the other hand, for...if is much less of a problem.

So what is the problem with being forced to write it like this? We have
just learned that there is no short supply of indent levels, so why
should this bother us?

The only reason this should bother us, is if we think that indent levels
are a somewhat limited commodity and/or the way we view the process
structure is better illustrated written the first way. But if we think
those arguments carry some weight, there is no reason to only consider
them in the case of an else if combination. Why should we be more
concerned with cascading ifs than with cascading controls in general?

Not that I expect this to change, but it illustrates why for a number
of people the forced indentation can be an annoyance. All these
discussions about combining controls would have been unnecessary
without the enforced strict indentation. In that case we wouldn't have
needed elif because we could have just written "else: if" or "else if"
we wouldn't now be discussing the pro and cons of loop comprehension
because we could have just layed out the code so that it illustrated
our intention of a loop comprehension.

-- 
Antoon Pardon

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: semicolon at end of python's statements "Sam Fourman Jr." <sfourman@gmail.com> - 2013-08-28 22:10 -0400
  Re: semicolon at end of python's statements Alister <alister.ware@ntlworld.com> - 2013-08-29 09:39 +0000
    Re: semicolon at end of python's statements Chris Angelico <rosuav@gmail.com> - 2013-08-29 19:52 +1000
    Re: semicolon at end of python's statements Fábio Santos <fabiosantosart@gmail.com> - 2013-08-29 11:02 +0100
    Re: semicolon at end of python's statements Ben Finney <ben+python@benfinney.id.au> - 2013-08-30 08:17 +1000
    Re: semicolon at end of python's statements Chris Angelico <rosuav@gmail.com> - 2013-08-30 08:50 +1000
    Re: semicolon at end of python's statements Ben Finney <ben+python@benfinney.id.au> - 2013-08-30 14:55 +1000
    Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-08-30 09:15 +0200
    Re: semicolon at end of python's statements Chris Angelico <rosuav@gmail.com> - 2013-08-30 17:25 +1000
    Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-08-30 09:48 +0200
    Re: semicolon at end of python's statements Fábio Santos <fabiosantosart@gmail.com> - 2013-08-30 11:32 +0100
      Re: semicolon at end of python's statements Roy Smith <roy@panix.com> - 2013-08-30 06:53 -0400
        Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-08-30 16:14 +0200
        Re: semicolon at end of python's statements Chris Angelico <rosuav@gmail.com> - 2013-08-31 08:18 +1000
      Re: semicolon at end of python's statements Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-08-31 00:09 +0000
        Re: semicolon at end of python's statements Terry Reedy <tjreedy@udel.edu> - 2013-08-31 01:03 -0400
        Re: semicolon at end of python's statements Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2013-08-31 10:47 +0300
          Re: semicolon at end of python's statements Paul Rudin <paul.nospam@rudin.co.uk> - 2013-08-31 09:00 +0100
            Re: semicolon at end of python's statements Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2013-08-31 13:28 +0300
            Re: semicolon at end of python's statements Grant Edwards <invalid@invalid.invalid> - 2013-09-02 14:20 +0000
              Re: semicolon at end of python's statements Tim Chase <python.list@tim.thechases.com> - 2013-09-02 09:45 -0500
                Re: semicolon at end of python's statements Roy Smith <roy@panix.com> - 2013-09-02 10:47 -0400
                Re: semicolon at end of python's statements Tim Chase <python.list@tim.thechases.com> - 2013-09-02 12:58 -0500
                Re: semicolon at end of python's statements Chris Angelico <rosuav@gmail.com> - 2013-09-03 07:07 +1000
        Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-01 19:58 +0200
        Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-01 21:58 +0200
          Re: semicolon at end of python's statements Steven D'Aprano <steve@pearwood.info> - 2013-09-02 08:05 +0000
            Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-02 11:45 +0200
            Re: semicolon at end of python's statements Fábio Santos <fabiosantosart@gmail.com> - 2013-09-02 11:42 +0100
            Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-02 12:58 +0200
            Re: semicolon at end of python's statements "albert visser" <albert.visser@gmail.com> - 2013-09-02 19:44 +0200
              Re: semicolon at end of python's statements Roy Smith <roy@panix.com> - 2013-09-02 13:53 -0400
                Re: semicolon at end of python's statements Neil Cerutti <neilc@norwich.edu> - 2013-09-03 17:15 +0000
                Re: semicolon at end of python's statements Neil Cerutti <neilc@norwich.edu> - 2013-09-03 20:00 +0000
            Re: semicolon at end of python's statements Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-09-02 17:24 -0400
        Re: semicolon at end of python's statements MRAB <python@mrabarnett.plus.com> - 2013-09-02 00:30 +0100
        Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-02 10:29 +0200
          Re: semicolon at end of python's statements Steven D'Aprano <steve@pearwood.info> - 2013-09-02 09:52 +0000
            Re: semicolon at end of python's statements Chris Angelico <rosuav@gmail.com> - 2013-09-02 20:14 +1000
              Re: semicolon at end of python's statements Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-02 14:57 +0000
            Re: semicolon at end of python's statements Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-02 12:52 +0200
            Re: semicolon at end of python's statements Modulok <modulok@gmail.com> - 2013-09-02 17:17 -0600
              Re: semicolon at end of python's statements Roy Smith <roy@panix.com> - 2013-09-02 19:54 -0400
                Re: semicolon at end of python's statements Modulok <modulok@gmail.com> - 2013-09-02 18:56 -0600

csiph-web