On 27/06/2016 05:20, Lawrence D’Oliveiro wrote:
There is one thing Python did not slavishly copy from C. While it has (mostly) the 
same operators, and exclusively adopted the iso646 names for the Boolean operators 
(which you can also use in C and C++, by the way, but not Java), it made a slight 
tweak to the operator precedence rules 
<https://docs.python.org/3/reference/expressions.html#operator-precedence>. 
Namely, whereas in C, C++ or Java you have to write

    (bitval & bitmask) == needbits

in Python you can dispense with the parentheses

    bitval & bitmask == needbits

C has some 15 operator precedences (even if you consider only normal binary operators, there are 10; and that doesn't include "**").

It's not something you would choose to adopt in another language!

(On the subject of things wrong with C, here's a list I made of around 100:

https://github.com/bartg/langs/blob/master/C%20Problems.md

Although from the point of view of a more streamlined and modern low-level statically-typed language, not of one like Python.)

How did I discover this? Entirely by accident: I forgot the parentheses one day 
and *didn’t* hit a bug. :)

That's not wise. It could have worked by chance. And putting in the parentheses anyway means the fragment of code stays interchangeable with C.

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

Reply via email to