1. Home
  2. iThink
  3. Programmazione per Ragazzi
  4. Python per principianti: cheat sheet e glossario
Programmazione per Ragazzi Divento Programmatore · Appendice B

Python per principianti: cheat sheet e glossario

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

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

  1. Stampa questa pagina e tienila accanto mentre programmi
  2. Cerca per sezione usando i titoli ### (es. "LISTE", "DIZIONARI")
  3. Copia-incolla gli snippet come punto di partenza per i tuoi progetti
  4. 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

Fonti e riferimenti

Condividi LinkedIn Facebook X WhatsApp
Continua a leggere

Tutti gli articoli del blog

Strumenti gratuiti