[Python-il] [pyweb-il:1050] Python coding question

Amit Aronovitch aronovitch at gmail.com
Thu Jul 1 15:28:23 IDT 2010


>
> On Thu, Jul 1, 2010 at 2:48 PM, Ahik Man <ahik.man at gmail.com> wrote:
>
>> What do you think about this code:
>>
>> for n in range(2, 10):...     for x in range(2, n):...         if n % x == 0:...             print n, 'equals', x, '*', n/x...             break...     else:...         # loop fell through without finding a factor...         print n, 'is a prime number'
>>
>>
>> I don't like this 'for - else' trick. IMHO it's confusing and not
>> readable.
>>
>>
‎I really like this (very natural) programmatial construct.
I use it all the time, and feel handicapped in languages such as C, where
you have to define an extra boolean flag and manually set/check it to
achieve the same result.

  As for the choice of keywords, it is not that bad (maybe just got used to
it after years of usage), but I agree the semantics might not be obvious to
unaware readers. Certainly not up to Python's praised readability standards.
  Personally, I don't like the choice of '=' as the syntactical marker for
name-binding. It makes people think it is an operator, and expect c-like
semantics. Source of endless bugs for newbies and repeated misunderstandings
in mailing lists.

 Well, the advantage of having a BDFL is that someone is in charge of making
such choices and we do not have to argue about this any more. Only other
option is to try to keep everyone happy by supporting several versions of
the syntax (works fine in Perl, but takes its toll in readability and/or
learning-curve).

   AA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://hamakor.org.il/pipermail/python-il/attachments/20100701/89613d23/attachment.htm 


More information about the Python-il mailing list