- Home
- iThink
- Programmazione per Ragazzi
- Variabili e tipi di dati in Python spiegati semplice
Variabili e tipi di dati in Python spiegati semplice
Divento Programmatore — Capitolo 2: Variabili e tipi di dati
Nel Capitolo 1 abbiamo scritto il primo script e capito che il codice sono istruzioni sequenziali. Ora impariamo a memorizzare informazioni per usarle dopo: le variabili.
Cosa imparerai
| Concetto | Descrizione | | ---------- | ------------- | | Variabile | Un nome che punta a un valore in memoria | | 4 tipi base | str (testo), int (interi), float (decimali), bool (vero/falso) | | input() | Chiedere dati all'utente | | f-string | Inserire variabili dentro stringhe | | snake_case | Convenzione di nomi pulita e standard |
1. Cos'è una variabile? L'analogia della scatola
Immagina una scatola con un'etichetta sopra.
eta = 12
eta= etichetta (nome della variabile)12= contenuto (valore)== assegnazione (metti il valore nella scatola)
Importante:
=in programmazione non significa "uguale" (matematica). Significa "prendi il valore a destra e mettilo nella variabile a sinistra".
punteggio = 0
punteggio = punteggio + 10 # Ora vale 10
punteggio = punteggio + 5 # Ora vale 15
2. I 4 tipi di dati fondamentali
Python capisce che tipo di valore c'è nella scatola. Usa type() per scoprirlo:
nome = "Alex" # str (string = testo)
eta = 12 # int (integer = intero)
altezza = 1.55 # float (decimale)
is_studente = True # bool (boolean = True/False)
print(type(nome)) # <class 'str'>
print(type(eta)) # <class 'int'>
print(type(altezza)) # <class 'float'>
print(type(is_studente)) # <class 'bool'>
Tabella riassuntiva
| Tipo | Parola chiave | Esempi | Uso tipico | | ------ | --------------- | -------- | ------------ | | Stringa | str | "Ciao", 'Python', "123" | Testo, nomi, messaggi | | Intero | int | 0, 42, -7, 1000 | Contatori, età, punteggi interi | | Decimale | float | 3.14, -0.5, 2.0 | Misure, prezzi, coordinate | | Booleano | bool | True, False | Stati, flag, condizioni |
Attenzione:
True/Falsecon maiuscola iniziale.true/falsedanno errore.
3. input(): parla con l'utente
nome = input("Come ti chiami? ")
print("Ciao, " + nome + "!")
Cosa succede:
- Programma stampa il prompt:
Come ti chiami? - Si ferma e aspetta che l'utente scriva + Invio
- Quello che l'utente scrive diventa una stringa in
nome
input() restituisce SEMPRE stringa
eta = input("Quanti anni hai? ") # Utente scrive: 12
print(type(eta)) # <class 'str'> ← STRINGA!
Per usarlo come numero, converti:
eta = int(input("Quanti anni hai? ")) # Converte in int
altezza = float(input("Altezza (m)? ")) # Converte in float
| Conversione | Funzione | Esempio | | ------------- | ---------- | --------- | | Stringa → Intero | int() | int("12") → 12 | | Stringa → Decimale | float() | float("1.55") → 1.55 | | Qualsiasi → Stringa | str() | str(12) → "12" | | Qualsiasi → Booleano | bool() | bool(0) → False, bool(1) → True |
Errore comune:
int("ciao")→ValueError. L'utente deve scrivere un numero valido.
4. f-string: inserisci variabili nel testo (Python 3.6+)
Invece di concatenare con + (scomodo e lento):
# Vecchio stile
print("Ciao " + nome + ", hai " + str(eta) + " anni.")
# f-string (moderno, leggibile, veloce)
print(f"Ciao {nome}, hai {eta} anni.")
Sintassi: f"testo {variabile} altro testo"
gioco = "Minecraft"
ore = 3.5
print(f"Gioco a {gioco} da {ore} ore al giorno.")
# Gioco a Minecraft da 3.5 ore al giorno.
Puoi fare calcoli dentro le {}:
base = 10
altezza = 5
print(f"Area triangolo: {base * altezza / 2}") # 25.0
5. Naming convention: snake_case (PEP 8)
Python usa snake_case per variabili e funzioni: parole_minuscole_separate_da_underscore.
| ✅ Corretto | ❌ Evita | Motivo | | ------------- | ---------- | -------- | | punteggio_massimo | punteggioMassimo (camelCase) | Standard Python | | nome_giocatore | NomeGiocatore (PascalCase) | Riservato alle classi | | eta | Età | No accenti, no maiuscole | | _privato | 123numero | Non iniziare con numero | | classe | class | Non usare parole riservate |
Parole riservate (non usarle come nomi): if, else, for, while, def, class, import, from, as, try, except, finally, with, lambda, yield, await, async, True, False, None, and, or, not, in, is, return, break, continue, pass, raise, assert, del, global, nonlocal.
6. Operatori utili con variabili
Aritmetici
a = 10
b = 3
print(a + b) # 13 addizione
print(a - b) # 7 sottrazione
print(a * b) # 30 moltiplicazione
print(a / b) # 3.333... divisione (sempre float)
print(a // b) # 3 divisione intera (floor)
print(a % b) # 1 modulo (resto)
print(a ** b) # 1000 potenza
Assegnazione composta (scorciatoie)
punteggio = 0
punteggio += 10 # uguale a: punteggio = punteggio + 10
punteggio -= 3 # 7
punteggio *= 2 # 14
punteggio //= 3 # 4
7. Script completo: scheda giocatore
# scheda_giocatore.py
# Crea una scheda profilo interattiva
print("=== CREA IL TUO PROFILO GIOCATORE ===")
print()
# Input con conversione immediata
nome = input("Nome giocatore: ")
eta = int(input("Età: "))
gioco_preferito = input("Gioco preferito: ")
ore_giornaliere = float(input("Ore al giorno (es. 1.5): "))
# Booleano da risposta sì/no
vip_risposta = input("Hai abbonamento VIP? (s/n): ").lower()
is_vip = vip_risposta == "s"
print()
print("=== SCHEDA GIOCATORE ===")
print(f"Nome: {nome}")
print(f"Età: {eta} anni")
print(f"Gioco top: {gioco_preferito}")
print(f"Tempo medio: {ore_giornaliere} h/giorno")
print(f"VIP: {'Sì' if is_vip else 'No'}")
print(f"Ore settimanali stimate: {ore_giornaliere * 7:.1f} h")
Output esempio:
=== CREA IL TUO PROFILO GIOCATORE ===
Nome giocatore: Luna
Età: 13
Gioco preferito: Roblox
Ore al giorno (es. 1.5): 2
Hai abbonamento VIP? (s/n): s
=== SCHEDA GIOCATORE ===
Nome: Luna
Età: 13 anni
Gioco top: Roblox
Tempo medio: 2.0 h/giorno
VIP: Sì
Ore settimanali stimate: 14.0 h
8. Errori tipici e come risolverli
| Errore | Codice sbagliato | Codice corretto | | -------- | ------------------ | ----------------- | | SyntaxError | nome = "Alex | nome = "Alex" | | ValueError | eta = int("dodici") | eta = int("12") | | NameError | print(nomee) | print(nome) | | TypeError | "Età: " + 12 | "Età: " + str(12) o f"Età: {12}" |
9. Esercizi pratici
- Calcolatrice età: Chiedi anno nascita, calcola età (anno attuale - nascita)
- Convertitore: Chiedi temperatura in °C, stampa in °F (
F = C * 9/5 + 32) - Profilo completo: Estendi lo script sopra con: colore preferito, animale totem, superpotere
- Debug: Copia questo codice rotto, correggi gli errori:
nome = input("Nome: ") eta = input("Età: ") print(f"Tra 5 anni avrai {eta + 5} anni") # Errore!
10. Checklist fine capitolo
- [ ] Sai creare variabili di 4 tipi diversi
- [ ] Usi
input()e converti conint()/float() - [ ] Scrivi
f-stringper output puliti - [ ] Nomi variabili in
snake_case - [ ] Conosci
type()per verificare il tipo - [ ] Sai usare
+=,-=,*=,//=
Prossimo capitolo
Capitolo 3: Controllo di flusso — if, elif, else e cicli while/for: fai decidere il codice. Impareremo la logica booleana, operatori di confronto, e a far ripetere il programma.
Serie "Divento Programmatore: Python e i Giochi" (Cervello Elettronico Vol.2). Ogni articolo = un capitolo con codice completo, tabelle, esercizi. Per ragazzi 10-14 + guide genitori/educatori.
Per approfondire
- Indovina il numero: il primo gioco in Python
- Quiz show in Python: un gioco a domande passo per passo
- Perché imparare a programmare in Python da ragazzi
- Corsi e percorsi di programmazione