- Home
- iThink
- Programmazione per Ragazzi
- Python per principianti: cheat sheet e glossario
Python per principianti: cheat sheet e glossario
Divento Programmatore — Appendice B: Cheat Sheet Python + Glossario
Cheat Sheet Python — Tutto in un Foglio
VARIABILI E TIPI
x = 42 # int (intero)
pi = 3.14 # float (decimale)
nome = "Marco" # str (stringa)
attivo = True # bool (booleano: True/False)
lista = [1, 2, 3] # list (lista ordinata)
diz = {"chiave": "valore"} # dict (dizionario chiave-valore)
tupla = (1, 2, 3) # tuple (immutabile)
insieme = {1, 2, 3} # set (insieme, elementi univoci)
OUTPUT E INPUT
print("Ciao", nome) # Stampa con separatore spazio
print(f"Hai {x} punti") # f-string (Python 3.6+)
print("Valore: {}".format(x)) # format() (vecchio stile)
testo = input("Scrivi: ") # Sempre str
numero = int(input("Numero: ")) # Converte in int
decimale = float(input("Decimale: ")) # Converte in float
CONDIZIONI (if/elif/else)
if x > 10:
print("Grande")
elif x > 5:
print("Medio")
else:
print("Piccolo")
# Operatori di confronto: == != > < >= <=
# Operatori logici: and, or, not
# In: verifica appartenenza
if "a" in "casa": # True
if 3 in [1, 2, 3]: # True
CICLI (for / while)
# for su range
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(1, 6): # 1, 2, 3, 4, 5
print(i)
for i in range(0, 10, 2): # 0, 2, 4, 6, 8 (step 2)
print(i)
# for su collezione
for elemento in lista:
print(elemento)
for i, elemento in enumerate(lista): # Indice + valore (da 0)
print(i, elemento)
for i, elemento in enumerate(lista, 1): # Indice da 1
print(i, elemento)
# while
while x > 0:
x -= 1 # x = x - 1
# Controllo ciclo
break # Esce dal ciclo immediatamente
continue # Salta al prossimo giro
FUNZIONI (def / return)
def saluta(nome, eta=0): # Parametro con default
"""Docstring: spiega cosa fa la funzione."""
return f"Ciao {nome}, hai {eta} anni"
risultato = saluta("Sofia", 14) # Chiama con argomenti
saluta("Luca") # eta usa default 0
# Variabili locali vs globali
globale = 10
def modifica():
global globale # Necessario per modificare globale
globale = 20
LISTE (list)
lista = [1, 2, 3]
lista.append(4) # Aggiunge in fondo → [1, 2, 3, 4]
lista.insert(0, 0) # Inserisce all'indice 0 → [0, 1, 2, 3, 4]
lista.remove(2) # Rimuove primo valore 2 → [0, 1, 3, 4]
lista.pop() # Rimuove e restituisce ultimo → 4
lista.pop(0) # Rimuove e restituisce indice 0 → 0
lista[0] # Primo elemento
lista[-1] # Ultimo elemento
lista[1:3] # Slice: elementi indice 1, 2
len(lista) # Lunghezza
lista.sort() # Ordina sul posto (in-place)
sorted(lista) # Restituisce nuova lista ordinata
lista.reverse() # Inverte sul posto
"a,b,c".split(",") # Stringa → lista ["a", "b", "c"]
", ".join(lista) # Lista → stringa "1, 2, 3"
DIZIONARI (dict)
diz = {"nome": "Marco", "eta": 13}
diz["nome"] # Legge valore → "Marco" (KeyError se manca)
diz.get("nome") # Legge sicuro → None se manca
diz.get("eta", 0) # Default se manca
diz["nuova"] = "valore" # Aggiunge/modifica
del diz["chiave"] # Elimina chiave
"chiave" in diz # True se chiave esiste
diz.keys() # Vista chiavi
diz.values() # Vista valori
diz.items() # Vista coppie (chiave, valore)
for k, v in diz.items(): # Itera su coppie
print(k, "→", v)
SET (Insiemi)
s = {1, 2, 3}
s.add(4) # Aggiunge elemento
s.remove(2) # Rimuove (KeyError se manca)
s.discard(2) # Rimuove sicuro (no error)
1 in s # True se contiene
s1 | s2 # Unione
s1 & s2 # Intersezione
s1 - s2 # Differenza
s1 ^ s2 # Differenza simmetrica
set(lista) # Da lista a set (rimuove duplicati)
GESTIONE ERRORI (try/except)
try:
numero = int(input("Inserisci: "))
except ValueError:
print("Non è un numero valido!")
except ZeroDivisionError:
print("Divisione per zero!")
except Exception as e: # Cattura qualsiasi altro errore
print(f"Errore generico: {e}")
else:
print("Nessun errore!") # Esegue se NESSUN except
finally:
print("Finito.") # Esegue SEMPRE
# Sollevare errori manualmente
raise ValueError("Messaggio personalizzato")
FILE I/O (with open)
# Scrivere (sovrascrive)
with open("file.txt", "w", encoding="utf-8") as f:
f.write("Ciao\n")
f.writelines(["riga1\n", "riga2\n"])
# Leggere tutto
with open("file.txt", "r", encoding="utf-8") as f:
contenuto = f.read() # Tutto in una stringa
righe = f.readlines() # Lista di righe (con \n)
for riga in f: # Itera riga per riga
print(riga.strip())
# Aggiungere in fondo (append)
with open("file.txt", "a", encoding="utf-8") as f:
f.write("Nuova riga\n")
# Verifica esistenza
import os
os.path.exists("file.txt") # True/False
LIBRERIE UTILI (import)
import random
random.randint(1, 100) # Intero casuale 1-100 (inclusi)
random.choice(lista) # Elemento casuale da lista
random.shuffle(lista) # Mescola lista in-place
random.random() # Float 0.0-1.0
import time
time.sleep(1) # Pausa 1 secondo
time.time() # Timestamp corrente (secondi da 1970)
import os
os.system("cls") # Pulisce terminale (Windows)
os.system("clear") # Pulisce terminale (Mac/Linux)
os.path.join("cartella", "file.txt") # Path cross-platform
os.makedirs("cartella", exist_ok=True) # Crea cartelle
import math
math.sqrt(16) # Radice quadrata → 4.0
math.pi # 3.14159...
TURTLE GRAPHICS
import turtle
t = turtle.Turtle()
schermo = turtle.Screen()
# Movimento
t.forward(100) # Avanti
t.backward(50) # Indietro
t.right(90) # Ruota destra gradi
t.left(45) # Ruota sinistra gradi
t.goto(x, y) # Vai a coordinate assolute
t.setheading(0) # Imposta direzione assoluta
# Penna
t.penup() # Alza penna (non disegna)
t.pendown() # Abbassa penna (disegna)
t.width(3) # Spessore linea
t.color("red") # Colore linea
t.color("red", "yellow") # Colore linea, colore riempimento
# Riempimento
t.begin_fill() # Inizia registrazione forma
# ... movimenti ...
t.end_fill() # Colore interno forma
# Forme rapide
t.circle(50) # Cerchio raggio 50
t.dot(20) # Punto diametro 20
# Utilità
t.speed(0) # Velocità max (0=istantaneo, 1-10)
t.hideturtle() # Nasconde tartaruga
t.showturtle() # Mostra tartaruga
schermo.bgcolor("black") # Colore sfondo
schermo.title("Titolo") # Titolo finestra
schermo.exitonclick() # Chiude al click
PYGAME BASE
import pygame
pygame.init()
schermo = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Titolo")
orologio = pygame.time.Clock()
# Colori RGB
BIANCO = (255, 255, 255)
NERO = (0, 0, 0)
ROSSO = (255, 0, 0)
# Game Loop
running = True
while running:
# 1. Eventi
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
running = False
elif evento.type == pygame.KEYDOWN:
if evento.key == pygame.K_ESCAPE:
running = False
# Tasti premuti (stato continuo)
tasti = pygame.key.get_pressed()
if tasti[pygame.K_LEFT]: x -= 5
# 2. Aggiorna stato
# ... logica gioco ...
# 3. Disegna
schermo.fill(NERO)
pygame.draw.rect(schermo, ROSSO, pygame.Rect(x, y, 50, 50))
pygame.draw.circle(schermo, BIANCO, (cx, cy), 20)
pygame.display.flip() # Aggiorna schermo
orologio.tick(60) # Limita a 60 FPS
pygame.quit()
CLASSI (OOP)
class NomeClasse:
def __init__(self, parametro1, parametro2=default):
self.attributo1 = parametro1
self.attributo2 = parametro2
def metodo(self, argomento):
return self.attributo1 + argomento
# Istanziare (creare oggetto)
oggetto = NomeClasse("valore1", "valore2")
oggetto.metodo("extra")
print(oggetto.attributo1)
# Ereditarietà
class Figlio(Genitore):
def __init__(self, extra):
super().__init__() # Chiama __init__ genitore
self.extra = extra
Glossario — Le parole dei programmatori (25+ termini)
| Termine | Definizione | | --------- | ------------- | | Algorithm / Algoritmo | Sequenza finita e ordinata di istruzioni per risolvere un problema. | | Bug | Errore nel codice. Termine nato nel 1947 quando una falena reale causò un guasto in un computer Harvard Mark II. | | Commit | Istantanea del codice salvata in Git. Come un checkpoint in un videogioco. | | Cursor | Editor di codice con AI integrata, basato su VS Code. Usato per il Vibe Coding. | | Debug | Processo di ricerca e correzione dei bug. | | f-string | Stringa Python che inizia con f"..." e permette di inserire variabili tra {}. | | Fork | Copia di un progetto open source da cui si sviluppa una versione alternativa. | | Function / Funzione | Blocco di codice con un nome, richiamabile più volte. Si definisce con def. | | Game loop | Ciclo centrale di ogni videogioco: aggiorna lo stato → disegna → aspetta input → ripeti. | | Git | Sistema di controllo versione che traccia tutte le modifiche al codice nel tempo. | | GitHub | Piattaforma online per ospitare repository Git e collaborare con altri programmatori. | | IDE | Integrated Development Environment — editor di codice con strumenti integrati (es. Thonny, VS Code). | | Indentazione | Rientro di 4 spazi usato in Python per delimitare i blocchi di codice. | | itch.io | Piattaforma gratuita per pubblicare e condividere videogiochi indipendenti. | | Library / Libreria | Raccolta di funzioni e classi pronte all'uso, importabile con import. | | Loop / Ciclo | Struttura che ripete un blocco di codice (for, while). | | OOP | Object-Oriented Programming — stile di programmazione basato su classi e oggetti. | | pygame | Libreria Python per creare videogiochi con grafica 2D. | | Repository | Cartella di progetto tracciata da Git, con tutto lo storico delle modifiche. | | Runtime error | Errore che si manifesta durante l'esecuzione del programma (non durante la scrittura). | | Syntax error | Errore di scrittura — il codice non rispetta le regole grammaticali di Python. | | Thonny | IDE gratuito e semplice, pensato per chi impara Python. Scaricabile su thonny.org. | | turtle | Libreria Python per disegnare grafica semplice muovendo una "tartaruga" sullo schermo. | | Variable / Variabile | Contenitore con un nome che memorizza un valore modificabile. | | Vibe Coding | Tecnica di programmazione assistita dall'AI in cui si descrive in linguaggio naturale quello che si vuole costruire e l'AI genera il codice. | | VS Code | Visual Studio Code — editor di codice gratuito di Microsoft, usato da milioni di sviluppatori. |
Come usare questo Cheat Sheet
- Stampa questa pagina e tienila accanto mentre programmi
- Cerca per sezione usando i titoli
###(es. "LISTE", "DIZIONARI") - Copia-incolla gli snippet come punto di partenza per i tuoi progetti
- Consulta il Glossario quando incontri un termine nuovo nei tutorial o nella documentazione ufficiale
Fine del Volume 2
Complimenti! Hai completato "Divento Programmatore: Python e i Giochi" (Volume 2 della collana "Cervello Elettronico").
Hai costruito 8 giochi veri e imparato:
- ✅ Variabili, tipi, input/output
- ✅ Controllo di flusso (if/elif/else, while, for)
- ✅ Funzioni, gestione errori, variabili globali
- ✅ Liste, dizionari, set, file I/O
- ✅ Matrici, coordinate, cicli nidificati
- ✅ Stringhe, ASCII Art, moduli standard
- ✅ Turtle graphics, coordinate cartesiane
- ✅ pygame, Game Loop, collisioni discrete
- ✅ OOP: classi, oggetti,
self, metodi, ereditarietà
Prossimo passo: Volume 3 — Vibe Coding per Ragazzi
Nel prossimo volume imparerai a:
- Programmare con l'AI come pair programmer (Cursor, GitHub Copilot)
- Fare refactoring e debug assistito
- Costruire app complete con API REST, JSON, requests
- Pubblicare i tuoi giochi su itch.io con
pyinstaller - Creare il tuo portfolio su GitHub (Git, commit, repository pubblico)
- Esplorare le carriere nel tech: game jam, open source, freelance
"Il codice che scrivi oggi è la fondazione del programmatore che sarai domani."
Continua a programmare. Continua a sbagliare. Continua a imparare.
Questo post è un estratto dal libro "Divento Programmatore: Python e i Giochi" (Volume 2 della collana "Cervello Elettronico") di Rocco Balzamà. Target: 10-14 anni · ~180 pagine · Thonny + VS Code.
Per approfondire
- Installare Thonny e VS Code per imparare Python
- Pong in Python con Pygame: il gioco completo
- Progetto finale in Python: dall'idea al programma
- Corsi e percorsi di programmazione