1. Home
  2. iThink
  3. Programmazione per Ragazzi
  4. Variabili e tipi di dati in Python spiegati semplice
Programmazione per Ragazzi Divento Programmatore · Capitolo 2

Variabili e tipi di dati in Python spiegati semplice

Codice Python sullo schermo di un computer
Foto: JohnsonMartin · Pixabay · Licenza dei contenuti Pixabay

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/False con maiuscola iniziale. true/false danno errore.


3. input(): parla con l'utente

nome = input("Come ti chiami? ")
print("Ciao, " + nome + "!")

Cosa succede:

  1. Programma stampa il prompt: Come ti chiami?
  2. Si ferma e aspetta che l'utente scriva + Invio
  3. 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

  1. Calcolatrice età: Chiedi anno nascita, calcola età (anno attuale - nascita)
  2. Convertitore: Chiedi temperatura in °C, stampa in °F (F = C * 9/5 + 32)
  3. Profilo completo: Estendi lo script sopra con: colore preferito, animale totem, superpotere
  4. 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 con int()/float()
  • [ ] Scrivi f-string per 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.

👉 Leggi il Capitolo 3 →


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

Fonti e riferimenti

Condividi LinkedIn Facebook X WhatsApp
Continua a leggere

Tutti gli articoli del blog

Strumenti gratuiti