Verificare se un dato è numerico, intero o decimale in Python

Python gestisce diversi tipi di dati numerici. I più comuni sono:

  • int (interi): Numeri senza parte decimale, ad esempio 1, -10, 500.

  • float (decimali): Numeri con una parte decimale, ad esempio 3.14, -0.001, 2.0.

  • complex (complessi): Numeri con una parte immaginaria, come 1 + 2j.

Inoltre, ci sono altre strutture e classi che possono essere utilizzate per rappresentare numeri in modo più specifico.

Verifica se un dato è numerico

Il primo passo per verificare se un dato è numerico è determinare se il valore appartiene a uno dei tipi numerici (int, float, o complex). Python fornisce la funzione isinstance() che permette di verificare se una variabile appartiene a un determinato tipo.

def is_numeric(value):     return isinstance(value, (int, float, complex)) # Esempi di utilizzo print(is_numeric(10))          # True print(is_numeric(3.14))        # True print(is_numeric("100"))       # False print(is_numeric(2 + 3j))      # True

Qui abbiamo utilizzato isinstance() per controllare se il valore passato è di tipo numerico. Il controllo include interi, float e numeri complessi.

Verifica se un dato è Intero

Per verificare se un dato è un intero (di tipo int), possiamo nuovamente utilizzare la funzione isinstance(). L'int in Python rappresenta qualsiasi numero senza parte decimale.

def is_integer(value):     return isinstance(value, int) # Esempi di utilizzo print(is_integer(10))      # True print(is_integer(3.14))    # False print(is_integer(-100))    # True print(is_integer("123"))   # False

Spesso i dati numerici possono arrivare in formato stringa, soprattutto quando si lavora con input da file o API. In questi casi, possiamo usare il metodo .isdigit() delle stringhe per verificare se una stringa contiene solo cifre.

def is_integer_string(value):     return isinstance(value, str) and value.isdigit() # Esempi di utilizzo print(is_integer_string("123"))  # True print(is_integer_string("abc"))  # False print(is_integer_string("12.3")) # False

Verifica se un dato è decimale

Un numero decimale in Python è di tipo float. Possiamo utilizzare isinstance() anche per verificare se un numero è di tipo float:

def is_float(value):     return isinstance(value, float) # Esempi di utilizzo print(is_float(3.14))      # True print(is_float(10))        # False print(is_float(-0.001))    # True

Conversione tra tipi di dato

Spesso, dopo aver verificato se un dato è numerico, intero o decimale, potrebbe essere necessario convertirlo. Python fornisce semplici funzioni per convertire stringhe in numeri e viceversa:

  • int() per convertire una stringa o un numero decimale in un intero.

  • float() per convertire una stringa o un intero in un numero decimale.