Video Corso Base di Python 3

03: Variabili e Stringhe

Menu della Serie






Benvenuti ragazzi e ragazze a questa terza puntata della nostra serie di tutorial su Python 3.6.

In questa nuova lezione introdurremo il concetto di Variabile, e un nuovo tipo di dato chiamato Stringa, che ci consente di utilizzare del testo nei nostri programmi.
Per cominciare, aprite la nostra ormai familiare Shell Interattiva IDLE e iniziamo subito!





Vi siete mai chiesti come facciano i vostri programmi a salvare valori nella memoria del Computer e ad accedervi poi in un secondo momento?
Questo avviene in parte per mezzo di quelle che chiamiamo Variabili.
Potete pensare a una variabile come ad una scatola che puó contenere un singolo valore, e l'inserimento del valore in questa "scatola", avviene tramite un processo chiamato assegnazione.

Nella shell interattiva scrivete:

>>>spam = 21

Con questo comando è come se aveste creato una scatola nella memoria del computer, chiamandola spam. All'interno di questa scatola chiamata SPAM avete quindi depositato il numero 21.
Fino a che lascerete la scatola li, senza metterci nient'altro dentro, potrete riaccedere al valore assegnatole utilizzando il nome della scatola, quindi della variabile, come collegamento al valore contenuto.
Provate a scrivere il nome della variabile sulla Shell Interattiva, e date invio:

>>>spam
21

Sorpresa! ecco che ci riappare il numero che avevemo appena depositato.




Una volta che avete richiamato questa variabile, è possibile fare qualsiasi tipo di calcolo sul valore ad essa assegnato, ad esempio:

>>> spam * 3
63

L'operazione spam * 3 ci restituisce il numero 63, che è il triplo del valore contenuto in spam.

In Python ci sono delle regole per quanto riguarda i nomi che è possibile dare alle variabili: questi infatti possono contenere solo lettere, numeri e underscore, ovvero il trattino basso, ma non possono iniziare con un numero!
Venire meno a queste regole comporta la comparsa di errori di sintassi.

Proviamo a creare una variabile e ad usare come primo carattere del nome un carattere numerico:

 >>> 1esempio = 2
File "stdin", line 1
1esempio = 2
^
SyntaxError: invalid syntax

Per lo stesso motivo sopracitato, otteniamo un errore anche in questo caso:
>>> esem-pio = 5
File "", line 1
SyntaxError: can't assign to operator

Tenete a mente che di norma è importante dare alle variabili nomi specifici, che ci permettano di identificarne lo scopo all'interno del programma, facilitandone la lettura e la semplicità complessiva.

Mentre studiate Python noterete che alle variabili vengono spesso assegnati nomi come "spam", "eggs" oppure "bacon", per tributo a un famoso scatch di Monty Python, la serie inglese che ispiró Van Rossum mentre era alla ricerca di un nome da dare al suo linguaggio di programmazione. Se siete interessati a qualche altra curiosità riguardante il linguaggio, potete dare uno sguardo a questo video Cinque Fatti e Curiosità su Python




Una delle caratteristiche più potenti delle variabili in Python è che potete riassegnarle quante volte vi pare.
Se fin'ora state immaginando le variabili come scatole a cui viene dato un nome e su cui è possibile inserire un valore, potete anche immaginare che a seconda del caso ci sia bisogno di inserirvi degli altri valori, giusto?
Il discorso è in realtà un pó più complesso di così ma ei, un passo alla volta no?




Un'altra caratteristiche molto importante che distingue Python da molti altri linguaggi di programmazione, è che le variabili non sono di un tipo specifico: potete quindi assegnar loro qualsiasi classe di valore vogliate.

Facciamo un esempio.
Utilizzando la funzione integrata type() andiamo a vedere che tipo di valore è presente nella variabile spam, che abbiamo assegnato prima:

>>> type(spam)
class 'int'

Si tratta chiaramente di un intero.

Proviamo ora ad assegnarle un valore appartenente al secondo tipo di dato di cui abbiamo parlato fin'ora, ovvero un numero in virgola mobile...

>>> spam = 3.14

Andiamo ora a ricontrollare:
>>> type(spam)
class 'float'
Avendole assegnato il Pi Greco, ora a spam è associato un Float!




Come accennato in precedenza, andiamo ora ad introdurre un nuovo tipo di dato, le Stringhe: queste non sono altro che valori di tipo testuale, quindi un insieme di caratteri(numeri e simboli compresi) inseriti tra apici o doppi apici.
Come esempio, creiamo una variabile chiamata frase e inseriamoci dentro la stringa 'Una volta imparato, Python si dimostra estremamente versatile' racchiusa tra singoli apici:

>>> frase = 'Una volta imparato, Python si dimostra estremamente versatile'

se ora andiamo ad effettuare un controllo con la funzione type()... notiamo che la classe di dato contenuta nella variabile frase è appunto una stringa...
>>> type(frase)
class 'str'

Creiamo ora una seconda variabile chiamata frase2 e inseriamoci dentro la stringa "Python è in assoluto il miglior linguaggio per chi sta iniziando a programmare", ma stavolta includiamola tra doppi apici.
>>> frase2 = "Python è in assoluto il miglior linguaggio per chi sta iniziando a programmare"

proviamo a richiamarne il valore sulla Shell...
>>> frase2
'Python è in assoluto il miglior linguaggio per chi sta iniziando a programmare'

Ma... come mai anche questa stringa ci viene restituita tra singoli apici quando noi l'abbiamo scritta usando invece doppi apici?
Questo semplicemente perché Python è stato ideato in questa maniera, le stringhe vengono sempre restituite tra singoli apici.
Prendete nota di ció, e procediamo.




Per rigor di logica, ci sono alcuni caratteri che non possono essere inclusi direttamente nelle stringhe, come ad esempio doppi apici in una stringa definita usando propri questi.
In questo caso ci troveremo quindi impossibilitati a fare ad esempio delle citazioni:

 >>> "e Dante scrisse: "Nel mezzo del cammin di nostra vita...""
File "", line 1
"e Dante scrisse: "Nel mezzo del cammin di nostra vita...""
^
SyntaxError: invalid syntax

Per Python, è come se avessimo interrotto la stringa prima della sua stessa fine, e questo fa si che ci restituisca un errore.

Per ovviare a questo problema possiamo utilizzare gli apici singoli per definire la stringa, oppure utilizzare un backslash prima dei caratteri "scomodi":

Riscriviamo ora la stessa stringa di prima, ma impiegando i backslash:

>>> "e Dante scrisse: \"Nel mezzo del cammin di nostra vita...\""
'e Dante scrisse: "Nel mezzo del cammin di nostra vita..."'

Le stringhe possono inoltre essere concatenate tra di loro per ottenere delle "fusioni" di testo:

>>> eggs = 'Meglio un uovo oggi...'
>>> bacon = 'o una gallina domani?'
>>> eggs + bacon
'Meglio un uovo oggi...o una gallina domani?'

Come notate gli spazi non sono inclusi automaticamente, a quello dovrete pensare voi!
>>> bacon = ' o una gallina domani?'
>>> eggs + bacon
'Meglio un uovo oggi... o una gallina domani?'




Ricapitolando:
-Le Variabili ci permettono di salvare dei valori in memoria per riutilizzarli in futuro;
-La Funzione type() ci permette di conoscere il tipo di valore presente in una variabile;
-Le Stringhe sono un tipo di dato, formato da caratteri testuali(numeri e simboli inclusi);
-Una Stringa viene definita tramite l'utilizzo di apici, singoli oppure doppi;
-I caratteri "scomodi" possono essere inseriti comunque in una stringa tramite un \