On Sunday, June 5, 2016 at 9:36:20 PM UTC+5:30, Uri Even-Chen wrote: > My suggestion: Never write expressions, such as 2 ** 3 ** 2 or even 2 * 4 > + 5, without parentheses. Always add parentheses - 2 ** (3 ** 2) (or (2 ** > 3) **2) or (2 * 4) + 5 (or 2 * (4 + 5)). > > > *Uri Even-Chen* > [image: photo] Phone: +972-54-3995700 > Email: u...@speedy.net > Website: http://www.speedysoftware.com/uri/en/ > <http://www.facebook.com/urievenchen> <http://plus.google.com/+urievenchen> > <http://www.linkedin.com/in/urievenchen> <http://twitter.com/urievenchen> > > On Sun, Jun 5, 2016 at 6:05 PM, ICT Ezy <ict...@gmail.com> wrote: > > > On Sunday, June 5, 2016 at 1:06:21 PM UTC+5:30, Peter Otten wrote: > > > ICT Ezy wrote: > > > > > > >>>> 2 ** 3 ** 2 > > > > Answer is 512 > > > > Why not 64? > > > > Order is right-left or left-right? > > > > > > ** is a special case: > > > > > > """ > > > The power operator ** binds less tightly than an arithmetic or bitwise > > unary > > > operator on its right, that is, 2**-1 is 0.5. > > > """ > > > https://docs.python.org/3.5/reference/expressions.html#id21 > > > > > > Here's a little demo: > > > > > > $ cat arithdemo.py > > > class A: > > > def __init__(self, value): > > > self.value = str(value) > > > def __add__(self, other): > > > return self._op(other, "+") > > > def __pow__(self, other): > > > return self._op(other, "**") > > > def __repr__(self): > > > return self.value > > > def _op(self, other, op): > > > return A("({} {} {})".format(self.value, op, other.value)) > > > $ python3 -i arithdemo.py > > > >>> A(1) + A(2) + A(3) > > > ((1 + 2) + 3) > > > >>> A(1) ** A(2) ** A(3) > > > (1 ** (2 ** 3)) > > > > Thank you very much for your explanation > > -- > > https://mail.python.org/mailman/listinfo/python-list > >
Thank you very much for your explanation -- https://mail.python.org/mailman/listinfo/python-list