Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Capitolo 12(Tuple):
tupla: Una sequenza di elementi immutabile.
12.10. Esercizi 125
assegnazione di tupla: Assegnazione costituita da una sequenza sul lato destro e una tupla
di variabili su quello sinistro. Il lato destro viene valutato, quindi gli elementi
vengono assegnati alle variabili sulla sinistra.
raccolta: L’operazione di assemblare una tupla di argomenti a lunghezza variabile.
spacchettamento: L’operazione di trattare una sequenza come una lista di argomenti.
oggetto zip: Il risultato della chiamata della funzione predefinita zip; un oggetto che itera
attraverso una sequenza di tuple.
iteratore: Un oggetto in grado di iterare attraverso una sequenza, ma che non fornisce
operatori e metodi delle liste.
struttura di dati: Una raccolta di valori correlati, spesso organizzati in liste, dizionari,
tuple, ecc.
errore di formato: Errore dovuto ad un valore che ha un formato sbagliato, ovvero tipo o
dimensioni errati.
Capitolo 13(Esercitazione: Scelta della Struttura di Dati):
deterministico: Qualità di un programma di fare le stesse cose ogni volte che viene
eseguito, a parità di dati di input.
pseudocasuale: Detto di una sequenza di numeri che sembrano casuali, ma sono generati
da un programma deterministico.
valore di default: Il valore predefinito di un parametro opzionale quando non viene
specificato altrimenti.
sovrascrivere: Sostituire un valore di default con un argomento.
benchmarking: Procedura di scelta tra strutture di dati di vario tipo, implementando le
alternative e provandole su un campione di possibili input.
debug con la papera di gomma: Fare il debug spiegando il problema ad un oggetto inanimato,
come una papera di gomma. Articolare un problema può aiutare a risolverlo,
nonostante la papera di gomma non sappia nulla di Python.
Capitolo 14(File):
persistente: Di un programma eseguito per un tempo indefinito e che memorizza almeno
parte dei suoi dati in dispositivi permanenti.
operatore di formato: Operatore indicato da %, che a partire da una stringa di formato
e una tupla produce una stringa che include gli elementi della tupla, ciascuno nel
formato specificato dalla stringa di formato.
stringa di formato: Stringa usata con l’operatore di formato e che contiene le sequenze di
formato.
sequenza di formato: Sequenza di caratteri in una stringa di formato, come %d, che
specifica in quale formato deve essere un valore.
file di testo: Sequenza di caratteri salvata in un dispositivo di archiviazione permanente
come un disco fisso.
directory: Raccolta di file; è dotata di un nome ed è chiamata anche cartella.
percorso: Stringa che localizza un file.
percorso relativo: Un percorso che parte dalla cartella di lavoro attuale.
percorso assoluto: Un percorso che parte dalla cartella principale del file system.
gestire: Prevenire l’arresto di un programma causato da un errore, mediante le istruzioni
try e except.
database: Un file i cui contenuti sono organizzati come un dizionario, con chiavi che
corrispondono a valori.
oggetto bytes: Un oggetto simile ad una stringa.
148 Capitolo 14. File
shell: Un programma che permette all’utente di inserire comandi e di eseguirli, avviando
altri programmi.
oggetto pipe: Un oggetto che rappresenta un programma in esecuzione e che consente ad
un programma Python di eseguire comandi e leggere i risultati.
Capitolo 15(Classi e Oggetti):
classe: Tipo di dato personalizzato definito dal programmatore. Una definizione di classe
crea un nuovo oggetto classe.
oggetto classe: Oggetto che contiene le informazioni su un tipo personalizzato e che può
essere usato per creare istanze del tipo.
istanza: Oggetto che appartiene ad una classe.
instanziare: Creare un nuovo oggetto.
attributo: Uno dei valori associati ad un oggetto, dotato di un nome.
oggetto contenuto (embedded): Oggetto che è contenuto come attributo di un altro
oggetto (detto contenitore).
156 Capitolo 15. Classi e oggetti
copia shallow: copia “superficiale” dei contenuti di un oggetto, senza includere alcun riferimento
ad eventuali oggetti contenuti; è implementata grazie alla funzione copy
del modulo copy.
copia profonda: Copia del contenuto di un oggetto e anche degli eventuali oggetti interni
e degli oggetti a loro volta contenuti in essi; è implementata grazie alla funzione
deepcopy del modulo copy.
diagramma di oggetto: Diagramma che mostra gli oggetti, i loro attributi e i valori di
questi ultimi.
Capitolo 16(Classi e Funzioni):
prototipo ed evoluzioni: Tecnica di sviluppo del programma a partire da un prototipo che
viene gradualmente provato, esteso e migliorato.
sviluppo pianificato: Tecnica di sviluppo che comporta profonde conoscenze del problema
e maggiore pianificazione rispetto allo sviluppo incrementale o per prototipo.
funzione pura: Funzione che non modifica gli oggetti ricevuti come argomenti. La
maggior parte delle funzioni pure sono produttive.
modificatore: Funzione che cambia uno o più oggetti ricevuti come argomenti. La maggior
parte dei modificatori sono vuoti, ovvero restituiscono None.
stile di programmazione funzionale: Stile di programmazione in cui la maggior parte
delle funzioni è pura.
invariante: Condizione che deve sempre essere vera durante l’esecuzione del programma.
istruzione assert: Istruzione che controlla una condizione e solleva un’eccezione se
fallisce.
Capitolo 17(Classi e Metodi):
linguaggio orientato agli oggetti: Linguaggio che possiede delle caratteristiche, come tipi
personalizzati e metodi, che facilitano la programmazione orientata agli oggetti.
174 Capitolo 17. Classi e metodi
programmazione orientata agli oggetti: Paradigma di programmazione in cui i dati e le
operazioni sui dati vengono organizzati in classi e metodi.
metodo: Funzione definita all’interno di una definizione di classe e che viene invocata su
istanze di quella classe.
soggetto: L’oggetto sul quale viene invocato un metodo.
argomento posizionale: Un argomento che non include il nome di un parametro, ovvero
non è un argomento con nome.
operator overloading: Cambiare il comportamento di un operatore come + in modo che
funzioni con un tipo personalizzato.
smistamento in base al tipo: Schema di programmazione che controlla il tipo di un
operando e invoca funzioni diverse in base ai diversi tipi.
polimorfico: Di una funzione che può operare con più di un tipo di dati.
information hiding: Principio per cui l’interfaccia di un oggetto non deve dipendere dalla
sua implementazione, con particolare riferimento alla rappresentazione dei suoi
attributi.
Capitolo 18(Ereditarietà):
codificare: Rappresentare un insieme di valori usando un altro insieme di valori e
costruendo una mappatura tra di essi.
attributo di classe: Attributo associato ad un oggetto classe. Gli attributi di classe sono
definiti all’interno di una definizione di classe ma esternamente ad ogni metodo.
18.11. Glossario 185
attributo di istanza: Attributo associato ad un’istanza di una classe.
impiallacciatura: Metodo o funzione che fornisce un’interfaccia diversa a un’altra
funzione, senza effettuare ulteriori calcoli.
ereditarietà: Capacità di definire una classe come versione modificata di una classe già
definita in precedenza.
classe madre o superclasse: Classe dalla quale una classe figlia eredita.
classe figlia o sottoclasse: Nuova classe creata ereditando da una classe esistente.
relazione IS-A: Relazione tra una classe figlia e la sua classe madre.
relazione HAS-A: Relazione tra due classi dove le istanze di una classe contengono
riferimenti alle istanze dell’altra classe.
dipendenza: Relazione tra due classi dove istanze di una classe utilizzano istanze
dell’altra classe, ma senza conservarle sotto forma di attributi.
diagramma di classe: Diagramma che illustra le classi di un programma e le relazioni tra
di esse.
molteplicità: Notazione in un diagramma di classe che mostra, per una relazione HAS-A,
quanti riferimenti ad istanze di un’altra classe ci sono.
incapsulamento dei dati: Tecnica di sviluppo che prevede un prototipo che usa variabili
globali e una versione finale in cui le variabili globali vengono trasformate in attributi
di istanza.
Capitolo 19(Ulteriori Strumenti):
espressione condizionale: Un’espressione che contiene uno tra due alternativi valori, a
seconda di una data condizione.
198 Capitolo 19. Ulteriori strumenti
list comprehension: Espressione con un ciclo for tra parentesi quadre che genera una
nuova lista.
generator expression: Espressione con un ciclo for tra parentesi tonde che produce un
oggetto generatore.
multiinsieme: Ente matematico che rappresenta una corrispondenza tra gli elementi di un
insieme e il numero di volte in cui compaiono.
factory: Funzione, di solito passata come argomento, usata per creare oggetti.
Capitolo 19B(Ulteriori Strumenti: Analisi degli Algoritmi):
analisi degli algoritmi: Un modo di confrontare gli algoritmi in termini di tempo di
esecuzione e/o requisiti di memoria.
modello di macchina: Rappresentazione semplificata di un computer usato per analizzare
il comportamento degli algoritmi.
caso peggiore: L’input che, con riferimento ad un algoritmo, lo rende più lento
nell’esecuzione o richiede più spazio di memoria.
operazione dominante: In un polinomio, il termine con il più alto esponente.
punto di intersezione: La dimensione del problema per cui due diversi algoritmi
richiedono lo stesso tempo di esecuzione o lo stesso spazio di memoria.
ordine di complessità: Insieme di funzioni che, per gli scopi dell’analisi degli algoritmi,
crescono in maniera equivalente. Per esempio, tutte le funzioni con incremento
lineare appartengono allo stesso ordine di complessità.
Notazione O-grande: Notazione per rappresentare l’ordine di complessità; ad esempio,
O(n) rappresenta l’insieme delle funzioni con incremento lineare.
lineare: Un algoritmo il cui tempo di esecuzione è proporzionale alle dimensioni del
problema, almeno per i problemi di grandi dimensioni.
quadratico: Un algoritmo il cui tempo di esecuzione è proporzionale a n2, dove n è una
misura delle dimensioni del problema.
ricerca: Il problema di rintracciare un elemento in un insieme (come una lista o un
dizionario) oppure stabilire che non è presente.
tabella hash: Struttura di dati che rappresenta una raccolta di coppie chiave-valore e ne
esegue la ricerca a tempo costante.