On Thu, 17 Aug 2017 09:12 am, Dennis Lee Bieber wrote: > I suppose, the two in combination imply that the calls to "f()" occur > first in left to right, but then the "**" are applied to the returned > values right to left -- rather than having the calls performed in the > exponentiation order.
Standard mathematical convention is for exponentiation to be performed from right to left: 2**3**2 should be evaluated as 2**(3**2) = 512 rather than (2**3)**2 = 64. This is more obvious in the standard formatted mathematical notation where each subsequent index is higher and smaller than the previous, indicating that 2 is being raised to the power of 3 squared, rather than 2 cubed being squared. See, for example, the comment here: http://mathworld.wolfram.com/PowerTower.html where z^z^z is an abbreviation for z^(z^z) (about a third of the way down the page). So Python agrees with the usual maths convention here. -- Steve “Cheer up,” they said, “things could be worse.” So I cheered up, and sure enough, things got worse. -- https://mail.python.org/mailman/listinfo/python-list