Cos'è una variabile?
In programmazione, una variabile è uno spazio con un nome nella memoria che contiene un valore che il tuo programma può leggere e modificare mentre gira. Il nome, come score o user_name, permette al codice di riferirsi al valore senza sapere dove è memorizzato.
Aggiornato il 24 settembre 2026
Un gioco che tiene il punteggio deve ricordare un numero, aggiungerci punti e mostrarlo alla fine. Quel numero non si può scrivere nel codice, perché è diverso ogni volta che qualcuno gioca. Così il programma riserva un posto in memoria, gli dà un nome come score e usa quel nome ogni volta che gli serve il valore attuale.
Come funziona una variabile
A una variabile succedono tre cose durante un programma:
- Creazione. Il programma riserva memoria per un valore e gli associa un nome. In Python succede la prima volta che assegni qualcosa al nome. In Java e C prima dichiari la variabile, con un tipo, come in
int score;. - Assegnazione. Un valore viene memorizzato sotto il nome con
=. Assegnare di nuovo sostituisce il valore precedente. - Uso. Ovunque il nome compaia in un'espressione, il programma legge il valore che contiene in quel momento.
Start: 0
After one point: 10
Doubled: 20
In ogni riga di assegnazione, prima viene calcolato il lato destro, usando il valore che score ha in quel momento. Poi il risultato viene memorizzato di nuovo sotto lo stesso nome. Il nome resta lo stesso mentre il valore che contiene varia.
Il segno uguale significa "memorizza"
In matematica, x = x + 1 non ha soluzione. In un programma è un'istruzione normale: prendi il valore attuale di x, aggiungi 1 e memorizza il risultato in x. Il segno = è l'operatore di assegnazione, e sposta sempre un valore dal lato destro al nome a sinistra.
Per chiedere se due valori sono uguali, i linguaggi di programmazione usano un altro operatore, ==. L'espressione x == 5 non cambia niente; produce True o False, un booleano.
Il significato matematico è collegato ma non è lo stesso. In algebra, la x di 2x + 3 = 7 rappresenta un unico numero sconosciuto da ricavare. In un programma, una variabile contiene un valore noto che può cambiare mentre il programma gira.
Variabili e tipi di dati
Ogni valore ha un tipo: un numero intero, un numero decimale, un testo, un booleano, una lista. I linguaggi si differenziano nel fatto che la variabile stessa abbia o meno un tipo.
In Python e JavaScript il tipo lo porta il valore, e una stessa variabile può contenere nel tempo valori di tipi diversi. Questo si chiama tipizzazione dinamica:
42 <class 'int'>
forty-two <class 'str'>
In Java, C e C++ la variabile ha un tipo fisso, scelto quando la dichiari. Questa è la tipizzazione statica: il compilatore rifiuta il codice che prova a memorizzare del testo in una variabile int, prima ancora che il programma venga eseguito.
int age = 30; // Java: type, name, value
String name = "Rosa";
let age = 30; // JavaScript: can be reassigned
const PI = 3.14159; // cannot be reassigned
In C il tipo decide anche quanta memoria occupa la variabile. Un int occupa 4 byte su quasi tutti i sistemi attuali, un double 8 e un char esattamente 1. Per tenere molti valori sotto un solo nome, come tutti i punteggi di un gioco, usi un array o una lista e raggiungi ogni valore tramite la sua posizione, come in scores[0].
Scatole ed etichette
Un'immagine comune di variabile è una scatola che contiene un valore. Questa immagine si adatta bene al C: int x; è davvero un'area fissa di memoria, e y = x; copia il valore in una seconda area.
Python funziona più come un sistema di etichette. Ogni valore è un oggetto, e una variabile è un nome attaccato a uno di essi. La differenza si vede quando due nomi si riferiscono alla stessa lista:
5 6
[1, 2, 3, 4]
Con i numeri, y = y + 1 crea un nuovo numero e sposta l'etichetta y su di esso, quindi x si riferisce ancora a 5. Con la lista, b = a non copia niente: entrambi i nomi si riferiscono a un'unica lista, quindi una modifica fatta tramite b si vede anche tramite a. Scrivi b = a.copy() quando vuoi una lista separata. Gli oggetti e gli array in Java e JavaScript si comportano allo stesso modo.
Scope: dove esiste una variabile
Una variabile è visibile solo in una parte del programma, chiamata il suo scope (ambito di visibilità). Una variabile creata dentro una funzione è locale: esiste mentre la funzione gira e sparisce quando la funzione termina. Una variabile creata al livello più alto di un file è globale e si può leggere ovunque in quel file.
Le variabili locali sono più facili da seguire, perché tutte le righe che possono modificarle stanno dentro una sola funzione. I programmi che dipendono da molte variabili globali sono più difficili da correggere per il motivo opposto.
Come dare un nome alle variabili
I buoni nomi dicono cosa significa il valore: total_price, is_logged_in, retries_left. La maggior parte dei linguaggi condivide le stesse regole:
- un nome è fatto di lettere, cifre e trattini bassi, e non può iniziare con una cifra;
- un nome non può essere una parola chiave del linguaggio, come
if,foroclass; - i nomi distinguono tra maiuscole e minuscole, quindi
totaleTotalsono due variabili diverse.
Lo stile cambia da linguaggio a linguaggio. Python usa lo snake_case (user_name), mentre Java e JavaScript usano il camelCase (userName). I valori che non devono mai cambiare si scrivono spesso in maiuscolo, come in MAX_SIZE.
Errori comuni
Usare una variabile prima che abbia un valore. Python si ferma con un NameError:
NameError: name 'total' is not defined
Lo stesso errore compare quando un nome è scritto male, perché per il computer totla e total sono nomi diversi.
Scrivere = quando intendi ==. In Python, if x = 5: è un errore di sintassi, quindi te ne accorgi subito. In C e JavaScript, if (x = 5) è codice valido: memorizza 5 in x, e la condizione è sempre vera. Il programma gira e dà risultati sbagliati, un errore logico che può richiedere molto tempo per essere trovato.
Dare due compiti a una variabile. Una variabile che contiene un prezzo all'inizio di una funzione e un conteggio alla fine funziona ancora, ma chiunque legga deve tenere traccia di quale significato sia quello attuale. Dai a ogni significato il suo nome.
Cosa leggere dopo
Le variabili contengono valori, e il passo successivo è sapere quali tipi di valori esistono: leggi cos'è un booleano per vero e falso, e cos'è un array per molti valori sotto un solo nome. La guida alle variabili in Python tratta l'assegnazione, le regole sui nomi e l'assegnazione multipla più in dettaglio, e il corso Python ti fa scrivere e modificare variabili fin dalla prima lezione.
Domande frequenti
Cos'è una variabile in Python?
age = 30, senza dichiarare alcun tipo, e lo stesso nome può in seguito riferirsi a un valore di un altro tipo. Per convenzione, i nomi delle variabili in Python si scrivono in snake_case.Qual è una definizione semplice di variabile?
Come si spiega una variabile a un bambino?
score, e la scatola contiene una cosa alla volta. Puoi guardarci dentro per vedere cosa c'è, oppure tirarla fuori e metterci qualcosa di nuovo, e l'etichetta resta la stessa.Che differenza c'è tra una variabile e una costante?
final, e JavaScript e C usano const. Python non ha costanti imposte dal linguaggio, quindi i programmatori scrivono il nome in maiuscolo, come MAX_USERS, per indicare che non deve cambiare.