Corso di python #3 conatenate e datatypes

Terza parte del corso python


Andiamo avanti con la pratica. Vediamo ora come mescolare le tipologie di dato, ovvero parleremo di CONCATENAZIONI e dei DATATYPES.

CONCATENAZIONI

Vediamo  un esempio (sbagliato):

eta = 3
variabile_con_testo = 'Ciao io ho eta anni'

Adesso stampiamo la variabile "variabilecontesto"

print(variabile_con_testo)
>>> Ciao io ho eta anni

Che non è però il risultato sperato.
Per inserire una variabile dentro una stringa si testo bisogna concatenarle fra di loro,
ovvero "spezzarle" per far capire all'interprete dove si interrompe la stringa,
per far inserire una variabile presa dall'esterno dalla stringa stessa,
e poi andare avanti con il testo.

Come fare quindi ?
Ci sono diversi modi, vediamo:


eta = 3
variabile_con_testo = 'Ciao io ho '+eta+' anni'
print(variabile_con_testo)
>>> TypeError: must be str, not int

Come vedete solamente cosi da errore..perchè? 

perchè la variabile eta è un numero,  mentre la variabile_con_testo è una stringa di testo, 
e non si possono "mescolare", vannno prima "trasformate". vediamo come. 
Si può fare in vari modi: 

eta = 3
eta = str(eta)
variabile_con_testo = 'Ciao io ho '+eta+' anni'
print(variabile_con_testo)
>>> Ciao io ho 3 anni

Oppure: 

eta = 3
variabile_con_testo = 'Ciao io ho '+str(eta)+' anni'
print(variabile_con_testo)
>>> Ciao io ho 3 anni


e restituiscono entrambe il risultato corretto. 

Cosa abbiamo fatto? 

In pratica abbiamo specificato che il valore numero dentro un testo, 
va trasformato non più in numero ma in testo. 

Perché python ce lo richiede? 

Per farvelo capire, la cosa più semplice e veloce è un esempio. Vediamo due casi simili ma molto diversi su come ragione python: 

DATATYPES

Usiamo la variabile eta come numero

eta = 3
somma = eta*3
print(somma)
>>> 9 

Adesso usiamo la variabile eta come testo:
eta = '3'
somma = eta*3
print(somma)
>>>  333

Quindi mettendo il numero fra apici ' ' vuol dire indicare il suo datatypes come una stringa, ovvero testo. Quindi a questo punto per python il 3 dentro la variabile non è più un numero, ma un testo.

E un testo * per 3  è un testo che va ripetuto tre volte, quindi è normale avere 333 come output.

Altro esempio, più chiaro adesso:

eta = 'tre '
somma = eta*3
print(somma)
>>>  tre tre tre


Semplice, no? :)
Alla prossima lezione di python, a presto!