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.