I tipi di dati in Python – int, long, float, tuple

“La Forza della Curva I” – Tullio Crali – 1930 – Futurismo Veneto

A differenza di altri linguaggi di programmazione Python, non ha quella struttura rigida della fase dichiarativa delle variabili.

Tale fatto, se da un lato consente la definizione delle variabili in qualunque punto, dall’altro il programma “interpreta” in maniera automatica il tipo di dato numerico che gli viene inserito da tastiera.

In Python sono definiti i tipi di dati numerici esattamente come negli altri linguaggi:

int

long

float

ma tale fatto viene demandato al programma nel decidere che tipo di dato dovrà contenere quello immesso dall’utente.

Vi è un tipo nuovo in Python che è il tuple che contiene sia stringhe che numeri e spesso per i numeri reali senza la notazione scientifica (ossia 5E3 significa 5 * 10 alla terza) va benissimo.

Sempre in Python vi è un’istruzione che consente al programmatore di capire il tipo di dato inserito dall’utente e questo permette un controllo sul tipo di dato immesso; ribadisco che questa elucubrazione mentale nasce solo perchè  la zona dichiarativa non esiste più!

Ecco un esempio che spero possa chiarire il concetto:

Listato del programma:

a = input(“si inserisca un numero: “)

print type(a)

l’utente inserisce:

5

l’output sarà

<type ‘int’>

l’utente inserisce:

5E4

l’output sarà:

<type ‘float’>

l’utente inserisce

675898758753

l’output sarà:

<type ‘long’>

infine l’utente inserisce:

5.3

l’output sarà:

<type ‘tuple’>

CONSEGUENZE FONDAMENTALI NEL’AMBITO MATEMATICO:

Se devo eseguire la divisione tra due numeri interi ad esempio 5/6 il resto non è un numero intero ma Python avendo avuto in input due numeri interi pensa che debba dare come risultato un numero intero e nel caso specifico il numero intero più vicino è 1!

Qualcosa non va proprio!

L’unica soluzione è trasformare il numero intero di input in un numero con la virgola (di tipo float) effettuando un passaggio all’interno del programma con una semplice moltiplicazione per 1.0 (numero 1 con uno zero dopo la virgola!)

esempio di listato:

a = input(“si inserisca un numero: “)
b= input(“si inserisca un altro numero:  “)

#forzo il cambio di tipo sempre float
a1= a*1.0

#visualizzo il tipo di dato
print type(a)
print type(b)
print type(a1)

#faccio la divisione con risultato sempre di tipo float
c = a1 / b
print c

A disposizione per tutti gli approfondimenti!

About Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *