semi colonic

avi.e.gross at gmail.com avi.e.gross at gmail.com
Thu Feb 23 13:57:09 EST 2023


That is a reasonable use, Rob, albeit I would refactor that example in quite a few ways so the need for a semicolon disappears even for lining things up.

So to extrapolate, perhaps a related example might be as simple as wanting to initialialize multiple variables together might suffice as in:

if dow == 0: hours_worked = 8; overtime = False

Of course some monstrosities are now possible for such a scenario such as


if dow == 0:  hours_worked, overtime  =  8,  False

Not that readable. 

I repeat, there is nothing wrong with a language having a feature like a semi-colon even if it is mainly syntactic sugar. Just wondering if it was widely used or even essential. My thought was that python evolved when some languages really needed a terminator but as it went another way, using indentation and sometimes blank lines, ...

I am not sure what Dieter meant about seeing semicolons in .pth files. I expect to see them in all kinds of files containing python code or anything created with a structure that chooses to include it.

-----Original Message-----
From: Python-list <python-list-bounces+avi.e.gross=gmail.com at python.org> On Behalf Of Rob Cliffe via Python-list
Sent: Wednesday, February 22, 2023 9:11 PM
To: python-list at python.org
Subject: Re: semi colonic



On 23/02/2023 00:58, avi.e.gross at gmail.com wrote:
> So can anyone point to places in Python where a semicolon is part of a 
> best or even good way to do anything?
>
>
Yes.  Take this bit of toy code which I just dreamed up.  (Of course it is toy code; don't bother telling me how it could be written better.) If it looks a bit ragged, pretend it is in a fixed font.

if dow==0: day="Mon"; calcPay()
if dow==1: day="Tue"; calcPay()
if dow==2: day="Wed"; calcPay()
if dow==3: day="Thu"; calcPay()
if dow==4: day="Fri"; calcpay()
if dow==5: day="Sat"; calcPay(rate=1.5)
if dow==6: day="Sun"; calcPay(rate=2)

The point is: when you have several short bits of code with an identical or similar pattern, *vertically aligning* the corresponding parts can IMO make it much easier to read the code and easier to spot errors.
Compare this:

if dow==0:
     day="Mon"
     calcPay()
if dow==1:
     day="Tue"
     calcPay()
if dow==2:
     day="Wed"
     calcPay()
if dow==3:
     day="Thu"
     calcPay()
if dow==4:
     day="Fri"
     calcpay()
if dow==5:
     day="Sat"
     calcPay(rate=1.5)
if dow==6:
     day="Sun"
     calcPay(rate=2)

Not so easy to spot the mistake now, is it?
Not to mention the saving of vertical space.

Best wishes
Rob Cliffe
PS If you really care, I can send you a more complicated example of real code from one of my programs which is HUGELY more readable when laid out in this way.

--
https://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list