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.