Il metodo isdigit() in Python

Il metodo isdigit() del linguaggio Python ti permette di verificare se una stringa contiene solo numeri.

stringa.isdigit()

Il metodo si applica agli oggetti di tipo String. Non ha parametri ma le parentesi tonde devi comunque aggiungerle.

Restituisce True se la stringa contiene solo numeri, altrimenti restituisce False.

Nota. Una stringa contiene solo numeri quando è una sequenza di caratteri che rappresentano solo numeri interi. Ad esempio, "12345" è una stringa contenente solo numeri, mentre "12.345" non lo è.

Ecco un esempio pratico.

Definisci una stringa con caratteri numerici

>>> numero = "12345"

Poi verifica se la stringa contiene solo numeri usando il metodo isdigit()

>>> numero.isdigit()

Il metodo restituisce True perché la stringa "12345" contiene solo numeri.

True

Ecco un altro esempio.

Definisci una stringa con caratteri numerici e un punto decimale.

>>> numero = "123.45"

Usa il metodo isdigit() per verificare se contiene dei numeri.

>>> numero.isdigit()

Il metodo restituisce False perché la stringa "123.45" contiene anche il carattere del punto decimale "."

False

Il metodo isdigit() riconosce anche i caratteri Unicode con i numeri in apice e in pedice.

>>> numero = "2²"
>>> numero.isdigit()

Il metodo isdigit() restituisce True

True

Nota. I caratteri Unicode con i numeri in apice e in pedice sono considerati numerici ma non decimali. Quindi, la funzione isdigit() li riconosce come numeri. Viceversa, la funzione isdecimal() non li riconosce.

>>> numero = "2²"
>>> numero.isdecimal()

Il metodo isdecimal restituisce False

False

Esistono altri due metodi in Python che verificano se una stringa contiene numeri. Sono i metodi isdecimal() e isnumeric().

Ci sono però delle differenze tra i vari metodi.

Ad esempio, scrivi questo script

numero = "½"
print(numero.isdigit())
print(numero.isdecimal())
print(numero.isnumeric())

I tre metodi restituiscono delle risposte diverse

False
False
True

Per isdigit() e isdecimal() il carattere "½" non è un numero mentre per isnumeric() è un numero.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin