Terrence Cole writes: > Can someone explain to me what python is doing here? > > Python 3.1.1 (r311:74480, Feb 3 2010, 13:36:47) > [GCC 4.3.4] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> -0.1 ** 0.1 > -0.7943282347242815 > >>> a = -0.1; b = 0.1 > >>> a ** b > (0.7554510437117542+0.2454609236416552j) > >>> -abs(a ** b) > -0.7943282347242815 > > Why does the literal version return the signed magnitude and the > variable version return a complex?
The minus sign is not part of the literal syntax. Python takes the expression as -(0.1 ** 0.1), the binary operator binding tighter than the unary. Try (-0.1) ** 0.1, and try a = 0.1, then -a ** 0.1. -- http://mail.python.org/mailman/listinfo/python-list