Operator precedence problem

Peter Pearson pkpearson at nowhere.invalid
Mon Jun 6 12:58:20 EDT 2016


On Mon, 6 Jun 2016 02:24:37 +1000, Chris Angelico <rosuav at gmail.com> wrote:
> On Sun, Jun 5, 2016 at 4:53 PM, ICT Ezy <ictezy at gmail.com> wrote:
>>>>> 2 ** 3 ** 2
>> Answer is 512
>> Why not 64?
>> Order is right-left or left-right?
>
> This example follows the mathematical standard; you start from the
> "top" (the right hand side), and work your way down.
[snip]

This is almost certainly why top-down was the desirable choice.  And
as for why mathematicians chose top-down (probably long before any
programming-language designer faced the decision), note that this
convention allows you to write both (a**b)**c and a**(b**c) without
parentheses, making expressions cleaner than otherwise:

               bc
  (a**b)**c = a

                c
               b
  a**(b**c) = a

-- 
To email me, substitute nowhere->runbox, invalid->com.



More information about the Python-list mailing list