Erik Max Francis wrote:
> Steven D'Aprano wrote:
> 
> 
>>Perhaps you meant to write (-1)**0.5, in which case Python developers have
>>a decision to make: should it assume real-valued maths unless explicitly
>>told differently, and hence raise an exception, or coerce the result to
>>complex?
>>
>>In this case, Python raises an exception, as it should, unless you
>>explicitly uses complex numbers. That's the best behaviour for the
>>majority of people: most people don't even know what complex numbers are,
>>let alone want to deal with them in their code. Python, after all, is not
>>Mathematica.
> 
> 
> Note that cmath.sqrt returns the expected complex result for 
> cmath.sqrt(-1.0).
> 
  >>> import cmath
  >>> cmath.sqrt(-1)
1j
  >>>

Indeed. But even exponentiation can come respectably close:

  >>> (-1+0j)**0.5
(6.123233995736766e-17+1j)

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC                     www.holdenweb.com
PyCon TX 2006                  www.python.org/pycon/

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to