Le variabili

Le variabili

L’istruzione di assegnazione e l’istruzione di stampa

Il modo più semplice per farsi consegnare una scatola dal calcolatore, darle un nome e riempirla con un numero e’ quello di scrivere una frase come:

>>> SCATOLA1=7

La scatola rappresenta quella che matematicamente viene definita variabile.

Ad essa è possibile assegnare un valore con l’istruzione di assegnazione.
Nella parete piena di scatole in cantina le variabili sono le etichette sulle scatole.
Il valore di una variabile può essere di tipo diverso: numero, carattere o serie di caratteri.
L’istruzione di assegnazione contiene un ordine per il calcolatore e costituisce un primo esempio di “istruzione”, ovvero un’operazione che Python capisce ed è in grado di eseguire. L’istruzione di assegnazione non produce risultati visibili.
Per ordinare al calcolatore di mostrare il contenuto di una variabile 
dobbiamo usare l’istruzione di stampa, scrivendo:
>>> print SCATOLA1

Variabile è una grandezza il cui valore può variare e può quindi assumere valori diversi.
Per il calcolatore è la scatola in cui si possono inserire questi valori. In Python non è presente una specifica istruzione di dichiarazione: una variabile viene creata al suo primo utilizzo, cioè quando gli viene assegnato un valore.  

L’istruzione di assegnazione assegna un valore alla variabile il cui nome è scritto a sinistra del segno =, cioè permette di inserire un valore nella variabile.

L’istruzione di assegnazione e’ costituita dal nome della scatola seguito dal segno =.
Ad esempio:

var1 = 7
var2 = 3.14
var3 = “come va?”

Si noti che il simbolo = non ha esattamente il significato matematico che conosciamo. Nell’istruzione di assegnazione:

var1 = 7

il simbolo = significa:
nella variabile di nome var1 metti il numero 7.

In Python le variabili assumono il tipo del valore che viene loro assegnato: numero, carattere o serie di caratteri, e lo mantengono fino a quando non viene loro assegnato un valore di tipo diverso.
L’istruzione di stampa – print – permette di visualizzare il contenuto delle variabili sullo schermo del calcolatore. Con questa istruzione ordiniamo al calcolatore di comunicare il contenuto di una variabile.

Ritornando all’analogia delle scatole, ecco come fa il calcolatore a riempire una scatola con un numero e a farci vedere il contenuto, se la scatola di nome scatola1 non e’ mai stata usata:

  1. mette a disposizione una scatola vuota;
  2. battezza la scatola scrivendo in modo indelebile sul coperchio il suo nome (che in questo caso e’ scatola1);
  3. mette dentro la scatola un foglietto sul quale e’ scritto il numero 7.

Quando e’ presente l’istruzione print il calcolatore:

  1. cerca la scatola indicata (in questo caso scatola1);
  2. la apre e ne legge il contenuto;
  3. stampa sullo schermo il contenuto (in questo caso 7).

Facciamo un esempio:

>>> scatola1 = 8+4
>>> print scatola1
12

Sul video comparirà il risultato dell’addizione: 12.

Il calcolatore ha messo a disposizione la scatola di nome scatola1 e dopo aver svolto i calcoli a destra del segno = ha posto nella scatola un foglietto contenente il risultato del calcolo. Quindi con l’istruzione print abbiamo ordinato al calcolatore di comunicare il contenuto della scatola.

Ricordarsi di scrivere print sempre minuscolo!

Cosa succede se scatola1 e’ invece già stata usata?
Utilizzando l’interprete di Python, prova a scrivere la sequenza di operazioni e le istruzioni per il calcolatore e poi controlla di seguito la soluzione.
Il calcolatore fa quanto segue:

  1. cerca la scatola che ha nome scatola1;
  2. apre la scatola e toglie il contenuto lasciandola vuota, ovvero
  3. toglie il foglietto che era stato introdotto prima;
  4. mette nella scatola il nuovo contenuto che è il foglietto con scritto il numero 7.

Quindi ripete le operazioni da 1 a 3 per il print.
Le istruzioni per il calcolatore saranno:

>>> scatola1 = 7
>>> print scatola1
7

Costanti
In alcuni casi il valore che viene scritto in una variabile (per esempio il numero di telefono dell’utente) può non subire modifiche durante l’esecuzione di un certo programma; in molti altri, invece, un valore può rimanere inalterato qualsiasi programma venga eseguito: è il caso, per esempio, del numero dei nani di Biancaneve, del valore della costante di gravitazione universale g, oppure del valore di π (= 3,14).
Queste “variabili che non variano” prendono il nome di costanti.
Nel linguaggio Python, a differenza di altri linguaggi di programmazione, non esiste la possibilità di definire un’area di memoria che non può essere modificata, cioè che mantenga i valori costanti: è il programmatore che deve essere attento nel gestire alcune variabili in modo tale che “facciano la funzione” di costanti, cioè non vengano modificate nel corso dell’evoluzione del programma.

Dati e tipi di dati (numeri, caratteri, stringhe)

Per realizzare qualsiasi lavoro, come anche la programmazione, abbiamo bisogno di almeno tre ingredienti:

  1. attrezzi
  2. materiali
  3. tecniche di lavoro

Ad esempio: per fare un disegno si ha bisogno di:

  • attrezzi: squadre, compasso, pennelli, matite…
  • materiali: acqua, fogli, cartoncini…
  • tecniche: acquerello, tempera, chiaroscuro…

Gli ingredienti necessari per scrivere un programma sono:

  • attrezzi: il calcolatore su cui lavorare e il software (Python);
  • materiali: i dati che dobbiamo manipolare;
  • tecniche: le regole del linguaggio che stiamo usando.

Cerchiamo ora di scoprire cosa sono i dati o i valori, che sono una delle cose fondamentali manipolate da un programmatore.

Che cosa significa realmente la parola “dato”? Il dizionario dice:
fatti o figure da cui si può trarre informazione”.

In effetti per il programmatore i dati sono la materia prima che verrà elaborata, senza i dati il nostro programma non può fare nulla.
I dati (valori) sono di tanti tipi diversi e dal tipo del dato dipendono le operazioni che possiamo fare con essi.

Esistono tipi di dati:

  • semplici che includono lettere, numeri e serie di lettere;
  • complessi che non sono altro che una combinazione dei primi.

Analizziamo quelli semplici:
I numeri: possono essere di tipo intero, reale o “floating point” (virgola mobile o, più semplicemente, numeri decimali con virgola).
L’addizione è un’operazione che possiamo fare sui dati di tipo “numero”.
I caratteri: un carattere è un simbolo come, ad esempio, la lettera “a” minuscola, la lettera “Q” maiuscola, la cifra ”7”, il simbolo “+” e qualunque altro simbolo che compaia sulla tastiera.
Le stringhe: letteralmente per stringa si intende un qualunque messaggio, quindi una serie di caratteri, cifre, lettere (o altri simboli che si trovano sulla tastiera), racchiusi tra virgolette, che viene memorizzata dal calcolatore come un unico elemento. In Python le stringhe si possono rappresentare in diversi
modi:

  • tra virgolette semplici: ‘ciao’
  • tra virgolette doppie: “ciao”
  • tra virgolette doppie ripetute tre volte “””ciao”””

Esempi di stringhe composte da:

una serie di lettere “ciao”
una serie di lettere che formano un messaggio “viva l’Inter”
Una serie di simboli @#$% “@#$%”
Una serie di simboli: anche i numeri tra virgolette
vengono letti come simboli e stampati tali e quali
“8-5=3”

Si provi a scrivere:
print “Ciao”
Il calcolatore visualizzerà tutti i caratteri compresi tra le virgolette:
Ciao
Ora si scriva:         print “Viva l’Inter”
Anche in questo caso il calcolatore visualizzerà tutti i caratteri racchiusi tra virgolette: Viva l’Inter
Se scriviamo l’istruzione:      print ”8+4”
Il calcolatore visualizzerà: 8+4
senza fare nessun calcolo. Come mai?
Perché si è dato un ordine al computer: visualizzare la stringa costituita da tre caratteri: 8 + 4.
I numeri 8 e 4 sembrano effettivamente dei numeri ma essendo chiusi tra virgolette vengono interpretati come i caratteri di un messaggio qualunque e quindi come ”una stringa”!
Se poi si scrive l’istruzione:    print “8+4=13”  il calcolatore scriverà: 8+4=13 senza accorgersi dell’errore di calcolo, perché l’ordine che gli è stato impartito è solamente quello di scrivere la stringa composta dai caratteri: 8+4=13

Memento: le virgolette non fanno parte della stringa, servono solo a indicarne l’inizio e la fine.
Fanno invece parte della stringa gli spazi vuoti fra le parole del messaggio.

Ovviamente possiamo mettere la stringa in una scatola, come abbiamo fatto con i numeri, usando l’istruzione di assegnazione. Ad esempio:

>>>var1 = “scuola media”
>>>print var1
Il risultato sarà: scuola media

I seguenti comandi:
>>>print “MATEMATICA”
>>>print “Via Roma 100”
>>>print “Area”
>>>print “++++****++++”
visualizzeranno rispettivamente:
MATEMATICA
Via Roma 100
Area
++++****++++

Esaminiamo ora le due istruzioni:

print “8+4” print 8+4
Il calcolatore visualizzerà:
8+4 12
In questo caso ci sono le
virgolette e il calcolatore riceve
l’istruzione di visualizzare i
caratteri contenuti tra le “ ”.
Visto che non ci sono le virgolette
il calcolatore interpreta 8+4 come
un’espressione aritmetica e la
esegue visualizzandone il risultato.
Proviamo ora a collegare le due istruzioni e scriviamo:
print “8+4 =”, 8+4

Il calcolatore eseguirà prima l’ordine di visualizzare la stringa”8+4= “ e
poi quello di visualizzare il risultato dell’operazione 8+4 e quindi il
risultato sarà:

8+4= 12

Facciamo ancora due esempi:

  1. print “3+5= “, 3+5
    Avrà come risultato: 3+5= 8
  2. print “4*4= “, 4*4
    Avrà come risultato: 4*4= 16
Sono stringhe Sono numeri
“3+5= ” 3+5
“4*4= ” 4*4

Nell’esempio successivo cambia solo l’ordine con cui devono essere eseguiti gli ordini, in questo caso prima l’operazione e poi la stringa:

>>>print 100-10, ” = 100 -10″
Il risultato sarà:
90= 100-10

Altro esempio:
“L’operazione matematica viene inserita nella variabile con l’istruzione di assegnazione e poi viene dato l’ordine di visualizzare la stringa e il contenuto della variabile.”

L’operazione matematica:                       14+8
viene inserita nella variabile:                    var2
con l’istruzione di assegnazione:               var2 = 14+8
e poi viene dato l’ordine di visualizzare
la stringa e il contenuto della variabile:      print “14+8= “, var2
il risultato sarà:                                       14+8= 22

Ancora un esempio:                                 5*3
                                                             var3=5*3
                                                             print “5*3= “, var3
il risultato sarà:                                       5*3= 15

ATTENZIONE!

  1. La parte a sinistra dell’uguale è una stringa anche se nel messaggio in uscita sembrano tutti numeri. Pertanto 14, 8, 5, 3 non sono numeri ma caratteri.
  2. Se si vuole fare visualizzare più oggetti sulla stessa riga bisogna separarli con una virgola.

Dati e tipi di dati (operazioni con le stringhe)
Interi e decimali possono essere utilizzati per operazioni matematiche, le stringhe no, anche se il loro contenuto sembra un numero.
Scrivere:
“ciao”/12 oppure “18”+5
è sbagliato e genera un SYNTAX ERROR
Tuttavia gli operatori matematici + e *, e soltanto questi, possono essere utilizzati anche con le stringhe ma con una funzione diversa.
Se ad una stringa viene sommata un’altra stringa l’effetto che si ottiene è il concatenamento, cioè la seconda stringa si aggiunge al fondo della prima.
Ad esempio:
“casa”+” dolce “+”casa” genera a video:
casa dolce casa
Gli spazi prima e dopo la parola “dolce” fanno parte della stringa e sono necessari, altrimenti a video le stringhe concatenate sarebbero attaccate come un’unica parola.
Se invece vogliamo ripetere tante volte la stessa stringa (ripetizione) possiamo moltiplicarla per un numero intero usando l’operatore matematico *.
Ad esempio:

“ciao”*3                  diventa         ciaociaociao
“ciao “*3                 diventa         ciao ciao ciao
“Ha, “*5                  diventa         Ha, Ha, Ha, Ha, Ha,

Possiamo anche mettere una stringa in una variabile, ossia assegnare una stringa ad una variabile e poi applicare le operazioni possibili sulle stringhe.
Ad esempio:
>>>var1 = “casa “
>>>var2 = “dolce casa”
>>>print var1 + var2
Il risultato sarà:
casa dolce casa

Le operazioni possono anche essere combinate tra loro nella stessa istruzione.
Ad esempio:
>>>print “ciao ” + (” ciao ” * 3)
darà come risultato
ciao ciao ciao ciao
Questo risultato si può ottenere in altri modi, ad esempio:
>>>print “ciao “*4
>>>print “ciao “+” ciao “+” ciao”+” ciao “

Commento all'articolo