strange behavior of math.sqrt() in new 3.0 version

David David
Fri Dec 26 22:52:24 CET 2008

I'm a newbee trying 3.0   Please help with  math.sqrt() 

At the command line this function works correctly 
      >>> import math
              n = input("enter a number > ")
              s = math.sqrt(n)
     An entry of 9 or 9.0  will yield 3.0

Yet the same code in a script gives an error message
                   import math
                   n = input("enter a number > ")
                   s = math.sqrt(n)
               Traceback (most recent call last) :
                  File "<stdin>", line 1, in <module>
                  File "" line 3 in <module>
                     s = math.sqrt(n)
               TypeError : a float is required
     Entering 9 or 9.0 gives same error message.

   According to the math module the results of all
   functions are floats.  However it says nothing about

Strangely the above code runs fine in version 2.5  ( ? )
and will handle large integers.

I've read the documentation for 3.0 including the section
"Floating Point Arithmetic: Issues & Limitations" and it
helps nada.

More information about the Python-list mailing list