[:it]I tipi di dati in Python – int, long, float, tuple- casting[:en]I tipi di dati in Python – int, long, float, tuple[:de]I tipi di dati in Python – int, long, float, tuple[:]

[:it]

Roger de la Fresnaye

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.

Ecco un esempio che spero possa chiarire il concetto:

Listato del programma:

 

a = input(“si inserisca un numero intero: “)
b=int(a)
print( type(b))

l’utente inserisce:

5

l’output sarà

<type ‘int’>

In pratica dobbiamo definire all’interno di Python il tipo di dato che deve poi elaborare il programma. Se tale fatto non dovesse essere chiarito alcune operazioni con i numeri in notazione scientifica o in notazione decimale non possono avvenire.

Ecco il listato corretto per

 

c = input(“si inserisca un numero decimale: “)
d=float(c)
print(“Il valore immessi risulta: “,d,” di tipo: “,type(d))

In questo caso il valore immesso viene gestito come un numero decimale o in notazione scientifica.

Un tipo di dato tipico di Python è invece il tuple:

t=(‘ciao’,3,4)
print(type(t))

come si osserva esso può contenere oggetti di tipo diverso.

 

 

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= float(a)
b1=float(b)
#faccio la divisione con risultato sempre di tipo float
c = a1 / b1
print( c)

A disposizione per tutti gli approfondimenti![:en]

“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![:de]

“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![:]

Questa voce è stata pubblicata in Uncategorized. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *