
Il metodo isnumeric() in Python
Il metodo isnumeric() in Python ti permette di verificare se una stringa è composta esclusivamente da caratteri numerici.
>>> stringa.isnumeric()
Per utilizzare il metodo isnumeric() ti basta chiamarlo su una stringa.
Il metodo restituisce True (vero) se la stringa contiene caratteri numerici. In caso contrario restituisce False (falso).
Ecco un esempio pratico.
Crea una variabile di tipo String chiamata myVar.
>>> myVar = "1234567890"
Chiama il metodo isnumeric() sulla variabile .
>>> myVar.isnumeric()
Il metodo restituisce True perché la stringa è composta solo da numeri.
True
Ti faccio un altro esempio.
Ora digita una stringa con il punto.
>>> myVar = "123.45"
Poi chiama il metodo isnumeric() sulla variabile.
>>> myVar.isnumeric()
In questo caso il metodo restituisce False perché non considera il punto decimale come numerico.
False
Il metodo isnumeric() considera anche altri caratteri come numeri, come ad esempio i numeri CJK (cinesi, giapponesi e coreani).
Pertanto, è molto utile se stai lavorando con testi in lingue diverse dall'italiano.
Altri metodi per verificare la presenza di numeri nelle stringhe
Il metodo isnumeric() non è l'unico metodo che verifica la presenza di numeri in una stringa.
Puoi usare anche il metodo isdigit() e il metodo isdecimal().
Tuttavia, questi metodi si distinguono tra loro per diversi aspetti.
Ad esempio, tra isnumeric() e isdigit() c'è una differenza fondamentale.
- Il metodo isnumeric() considera anche altri caratteri come numeri, oltre a quelli occidentali standard.
- Il metodo isdigit() considera solo i numeri occidentali standard.
Ecco qualche esempio pratico.
Esempio 1
Il carattere Unicode con la frazione "½"
numero = "½"
print(numero.isnumeric())
print(numero.isdecimal())
print(numero.isdigit())
è riconosciuto come numero da isnumeric() ma non da isdecimal() e isdigit()
True
False
False
Esempio 2
Il carattère "2²" con i numeri in apice o in pedice
numero = "2²"
print(numero.isnumeric())
print(numero.isdecimal())
print(numero.isdigit())
è riconosciuto come numero dal metodo isnumeric() e isdecimal() ma non da isdigit().
True
False
True
Esempio 3
Il carattere "六" è il numero 5 in giapponese
numero ="六"
print(numero.isnumeric())
print(numero.isdecimal())
print(numero.isdigit())
E' riconosciuto come numero da isnumeric() ma non da isdecimal() e isdigit()
True
False
False
Quindi, la scelta del metodo giusto da utilizzare dipende dalle tue esigenze di calcolo.