Oto fragment kodu, który sprawdza, czy liczba jest liczbą całkowitą, czy nie, działa zarówno dla Python 2, jak i Python 3.
import sys
if sys.version < '3':
integer_types = (int, long,)
else:
integer_types = (int,)
isinstance(yourNumber, integer_types) # returns True if it's an integer
isinstance(yourNumber, float) # returns True if it's a float
Zauważ, że Python 2 ma oba typy inti long, podczas gdy Python 3 ma tylko typ int. Źródło .
Jeśli chcesz sprawdzić, czy Twój numer floatreprezentuje an int, zrób to
(isinstance(yourNumber, float) and (yourNumber).is_integer()) # True for 3.0
Jeśli nie musisz rozróżniać między liczbą całkowitą a liczbą zmiennoprzecinkową, i nie przeszkadza ci żadna z nich, odpowiedź ninjagecko jest właściwą drogą
import numbers
isinstance(yourNumber, numbers.Real)