La funzione int ( Python )
Nel linguaggio python per trasformare un valore alfanumerico in un valore numerico utilizzo la funzione int()
La sintassi
int(argomento)
La funzione int() converte la stringa in un numero intero oppure un numero reale in un numero intero.
L'argomento può essere una costante o una variabile alfanumerica.
- Se l'argomento è un valore reale, la funzione int tronca ogni cifra dopo la virgola ( es. da 3.5 a 3 ).
- Se l'argomento è una stringa, la funzione int lo converte in un valore numerico intero ( es. da "3" a 3 ).
Nota. La stringa non deve avere spazi all'inizio o alla fine. Può eventualmente contenere il segno + o - come primo carattere.
Un esempio pratico
Esempio 1
Nel seguente codice ho assegnato alla variabile anno il valore "2018".
anno="2018"
Essendo un valore tra virgolette, la variabile anno è alfanumerica.
Il contenuto della variabile è il seguente.
"2018"
Quindi, non posso usare la variabile anno nelle operazioni matematiche ( es. anno+1 ).
Per trasformarla in una variabile numerica utilizzo l'istruzione int().
anno=int(anno)
Ora il contenuto della variabile non è più la stringa "2018" ma il numero intero 2018 (senza virgolette )
2018
A questo punto posso usare la variabile anno per qualsiasi operazione matematica, sommarla con altri numeri, ecc.
anno=anno+1
Esempio 2
In questo script converto un numero reale in un intero.
x=2.5
y=int(x)
print(x)
L'output è il seguente
2
La funzione ha troncato il valore numerico dopo la virgola.
Esempio 3
In questo script converto una stringa in un valore numerico.
x="2"
y=x
print y
L'output dello script è il seguente
2
Ora il dato non è più tra virgolette. E' stato trasformato da stringa a numero.
Come convertire un numero in base decimale
La funzione int è utile anche per convertire un numero da binario, ottale, esadecimale a decimale.
Per farlo bisogna documentare il secondo parametro opzionale.
int(stringa, base)
Dove la stringa è il valore da convertire (es."0100" in binario) e il secondo parametro è la base numerica del valore ( es. 2 per il binario, 8 per l'ottale, 16 per l'esadecimale ).
Esempio
Esempio 1
In questo script trasformo un numero binario in decmale.
int("0100",2)
Il risultato è il seguente:
4
Esempio 2
Ora converto un numero ottale in decmale.
int("11",8)
Il risultato è il seguente:
9
Esempio 3
In quest'ultimo esempio converto un numero esadecimale in decmale.
int("A",16)
Il risultato è il seguente:
10
E così via.
Nota. Grazie a questo metodo posso convertire qualsiasi numero nelle basi da 2 a 36. Quindi, non solo binario, ottale ed esadecimale. In ogni caso il numero da convertire deve essere inserito come una stringa, ossia tra virgolette, altrimenti l'interprete va in errore.