On Sun, 3 Jul 2005, George Sakkis wrote: > "Tom Anderson" <[EMAIL PROTECTED]> wrote: > >>>> And finally, does Guido know something about arithmetic that i don't, or >>>> is this expression: >>>> >>>> -1.0 ** 0.5 >>>> >>>> Evaluated wrongly? >>> >>> No, it is evaluated according to the rules of precedence. It is >>> equivalent to -(1.0**0.5). You are confusing it with (-1.0)**0.5 which >>> fails as expected. >> >> Ah. My mistake. I submit that this is also a bug in python's grammar. >> There's probably some terribly good reason for it, though. > > How about 'conformance with standard mathematic notation', does this > count for a terribly good reason?
Yes. However, it's an excellent reason why python's precedence rules are wrong - in conventional mathematical notation, the unary minus, used to denote the sign of a literal number, does indeed have higher precedence than exponentiation: -1^2 evaluates to 1, not -1. > What would one expect to be the result of 5^2 - 2^2, 29 or 21? 21. > Would you expect 5^2 + - 2^2 to be different, even if you write it as > 5^2 + -2 ^ 2 ? Yes: 5^2 + -2^2 is 29, however you write it. > White space is not significant in math AFAIK ;-) No, but there's a very big difference between unary and binary minus. tom -- When you mentioned INSERT-MIND-INPUT ... did they look at you like this? -- http://mail.python.org/mailman/listinfo/python-list