On Fri, Jul 31, 2015 at 2:58 AM, D Wyatt <fiberfo...@gmail.com> wrote:
> I just read in a book a little while ago that ** trumps a negative > sign? I am struggling with the audacity of that as -1 is negative 1, > NOT minus 1. How can an arithmetic operation trump an attribute of a > negative integer? It truly makes no sense to me. Thank you for any > enlightenment you can provide. > > Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 > bit (In > tel)] on win32 > Type "help", "copyright", "credits" or "license" for more information. > >>> 3**2 > 9 > >>> (-3)**2 > 9 > >>> -3**2 > -9 > >>> > > It is a matter of operator precedence. Certain operators are carried out before others. See here: https://docs.python.org/3/reference/expressions.html#operator-precedence Negation has lower precedence than exponentiation. That means that the exponentiation is carried out first, and negation is carried out second. So "-3**2" is equivalent to "-(3**2)". This matches the precedence rules for written mathematics, where negation has a lower precedence than exponentiation as well. So python is doing the correct thing here mathematically. See, for example, http://mathforum.org/library/drmath/view/53194.html _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor