semantics of ** (unexpected/inconsistent?)

Mel mwilson at the-wire.com
Mon Nov 30 02:26:47 CET 2009


Esmail wrote:
> Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
> [GCC 4.3.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> 
> 
>  >>> -3**2
> -9
> 
>  >>> x = -3
> 
>  >>> x**2
> 9
>  >>>
> 
> I would have expected the same result in both cases.
> 
> Initially I would have expected -3**2 to yield 9, but I can accept
> that ** binds tighter than the unary -, but shouldn't the results
> be consistent regardless if I use a literal or a variable?

When you say ** binds tighter than unary -, you're also saying that -3 isn't 
a literal: it's an expression.  Try

y=3
-y**2

	Mel.





More information about the Python-list mailing list