[Tutor] exceptions problem
Steven D'Aprano
steve at pearwood.info
Sat Sep 11 12:22:47 CEST 2010
On Sat, 11 Sep 2010 09:56:41 am bob gailer wrote:
> > I never thought that you can use a float and a integer to look if
> > the number is a integer.
>
> You can't.
What? Of course you can.
def is_integer(x):
"""Return True if x is an integer."""
try:
return 1.0*x == int(x)
except (TypeError, ValueError):
return False
And in use:
>>> is_integer("12")
False
>>> is_integer(2.3)
False
>>> is_integer(2.0)
True
>>> is_integer(2)
True
The multiplication by 1.0 is not actually needed, but it doesn't hurt.
[thinks more carefully...] Actually it does hurt:
>>> is_integer(Decimal(2))
False
So although you *can* use float and int to determine if a value is an
integer, it's best to avoid the float.
--
Steven D'Aprano
More information about the Tutor
mailing list