[SciPy-user] Python number handling?

Robert Kern rkern at ucsd.edu
Fri Jul 15 06:25:52 CDT 2005

Howey, David A wrote:
> I'm new to python...
> Why, why oh why did someone decide to make python do this:
> Integer case
> In [5]: 107 / 4 
> Out[5]: 26
> Float case
> In [6]: 107.0  / 4
> Out[6]: 26.75
> I'm a bit worried that when it come to using variables, because you
> don't declare them (eg as integer or float) python might mess up
> division and give you the first result above rather than the second.
> Has anyone had any problems with this?

Long, long ago, Guido decided to make integers behave this way because C 
integers behaved this way (close enough at any rate; Python differs from 
C with negative integers, but arguably does something more consistent). 
In many cases, this behavior is actually useful although it tends to get 
in the way a good amount of the time.

Numeric Int arrays also do this because they just do C operations more 
or less.

Most of us have learned to just add the .0 wherever we really want a 
float or to make the explicit float() or .astype(Float) conversion when 
we really need it.

Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
  Are the graves of dreams allowed to die."
   -- Richard Harter

More information about the SciPy-user mailing list