Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Programmazione Python Completa: teoria, esercizi, quiz e progetti svolti, Dispense di Programmazione Avanzata

Manuale completo di Programmazione Python per studenti universitari di Informatica e corsi tecnico-scientifici. Il documento è pensato per preparare un esame di programmazione partendo dalle basi fino ad arrivare a programmazione orientata agli oggetti, strutture dati, algoritmi, complessità computazionale, NumPy, Pandas, Matplotlib, API, web scraping, analisi dati e introduzione all’intelligenza artificiale.

Tipologia: Dispense

2025/2026

In vendita dal 22/06/2026

biafore-giovanni
biafore-giovanni 🇮🇹

46 documenti

1 / 133

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Materiale indipendente di supporto allo studio - non ufficiale del Politecnico di Torino
PROGRAMMAZIONE PYTHON
COMPLETA
Teoria, esercizi svolti, programmazione a oggetti, quiz, domande d'esame e
progetti pratici
Corso di laurea: Informatica - Livello: Laurea Triennale
Universita' di riferimento: Politecnico di Torino
Manuale premium indipendente per preparazione d'esame
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica Programmazione Python Completa: teoria, esercizi, quiz e progetti svolti e più Dispense in PDF di Programmazione Avanzata solo su Docsity!

Materiale indipendente di supporto allo studio - non ufficiale del Politecnico di Torino

PROGRAMMAZIONE PYTHON

COMPLETA

Teoria, esercizi svolti, programmazione a oggetti, quiz, domande d'esame e

progetti pratici

Corso di laurea: Informatica - Livello: Laurea Triennale

Universita' di riferimento: Politecnico di Torino

Manuale premium indipendente per preparazione d'esame

Avvertenza e metodo d'uso

Questo documento e' un manuale indipendente di supporto allo studio: non e' materiale ufficiale del Politecnico di Torino e non sostituisce programma, dispense, lezioni o indicazioni dei docenti. E' progettato come prodotto premium per studenti che vogliono una preparazione completa e progressiva di Python, con teoria, esempi, esercizi risolti, quiz, domande d'esame e progetti.

Il percorso consigliato e' lineare: leggere il capitolo, riscrivere a mano o in editor l'esempio, risolvere gli

esercizi senza guardare subito la soluzione, controllare i quiz e infine svolgere almeno un progetto. La

programmazione si impara eseguendo codice: ogni blocco va copiato, modificato e testato.

Indice dettagliato

  1. Introduzione a Python: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  2. Installazione e ambiente di sviluppo: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  3. Variabili e tipi di dato: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  4. Operatori: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  5. Input e output: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  6. Strutture condizionali: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  7. Cicli: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  8. Liste: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  9. Tuple: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  10. Dizionari: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  11. Set: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  12. Stringhe: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  13. Funzioni: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  14. Scope delle variabili: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  15. Moduli: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  16. Librerie: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  17. Gestione degli errori: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  18. File: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  19. Programmazione orientata agli oggetti: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  20. Strutture dati fondamentali: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  21. Algoritmi di ricerca: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  22. Algoritmi di ordinamento: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  23. Complessita' computazionale: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  24. Introduzione a NumPy: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  25. Introduzione a Pandas: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  26. Introduzione a Matplotlib: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  27. Gestione dei dati: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  28. Debugging: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  29. Buone pratiche di programmazione: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  30. Testing: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  31. Introduzione alle API: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  32. Introduzione al Web Scraping: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  33. Introduzione all'analisi dati: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame.
  34. Introduzione all'intelligenza artificiale con Python: teoria, esempio guidato, errori frequenti, tabella riassuntiva, quiz e domande d'esame. Sezione esercizi svolti: 100 esercizi ordinati per difficolta' crescente, con soluzione commentata.

Sezione progetti completi: calcolatrice, rubrica, biblioteca, studenti, CSV, videogioco testuale, prenotazioni, magazzino. Glossario finale e fonti consigliate: termini essenziali e riferimenti per approfondire.

1. Introduzione a Python

Questo capitolo affronta il ruolo di Python come linguaggio interpretato, leggibile e adatto sia alla didattica

sia allo sviluppo applicativo. L'obiettivo e' costruire una comprensione operativa: non basta conoscere la

definizione, bisogna saper usare il concetto in un programma reale, leggere il codice di altri e riconoscere

gli errori tipici che compaiono in un compito d'esame.

Obiettivi di apprendimento

  • spiegare perche' Python e' usato nei corsi introduttivi
  • distinguere interprete, script e programma
  • capire il ciclo scrivi-esegui-correggi

Spiegazione teorica essenziale

In Python il concetto centrale di questo argomento e' la relazione tra dato, istruzione e risultato. Ogni

istruzione viene interpretata dall'ambiente di esecuzione e produce un effetto: un valore calcolato, una

modifica dello stato del programma, una stampa su schermo, un accesso a memoria o un'interazione con

risorse esterne. Per preparare bene l'esame e' importante distinguere sempre tre livelli: sintassi, semantica

e comportamento a runtime. La sintassi stabilisce come si scrive il codice; la semantica stabilisce cosa

significa; il runtime mostra cosa succede davvero quando il programma viene eseguito.

Un buon metodo di studio consiste nel leggere un esempio riga per riga e chiedersi: quali variabili esistono

in questo punto? che tipo hanno? quale valore contengono? quale istruzione viene eseguita dopo? quale

caso limite potrebbe rompere il programma? Questo approccio e' lo stesso richiesto nelle prove scritte,

negli esercizi di laboratorio e nei progetti pratici.

Esempio guidato

Primo programma: dal codice all'output

messaggio = "Ciao, Python!" print(messaggio)

L'interprete esegue le istruzioni dall'alto verso il basso

nome = "studente" print("Benvenuto", nome)

L'esempio va studiato seguendo il flusso di esecuzione. Prima si identificano gli input, poi si osservano le

trasformazioni e infine si controlla l'output. Le righe commentate non servono solo a descrivere il codice:

aiutano a fissare il ragionamento algoritmico e a rendere il programma leggibile anche a distanza di

tempo.

Collegamento con l'esame

In una prova universitaria questo argomento puo' comparire sia come domanda teorica sia come parte di

un esercizio piu' ampio. Per ottenere il punteggio pieno non basta produrre un output corretto sull'esempio

fornito: bisogna dimostrare che il codice funziona anche su casi limite, che i nomi sono comprensibili e che

la soluzione non contiene passaggi inutilmente complicati. Quando la traccia chiede di 'commentare' o

'motivare', occorre spiegare perche' e' stato scelto quel costrutto e quali alternative sarebbero meno

adatte.

Mini-esercizio guidato

Prendi l'esempio del capitolo e modificalo in tre modi: cambia i dati iniziali, aggiungi un controllo sul caso

limite e sposta la logica principale dentro una funzione. Questo esercizio obbliga a capire davvero il codice,

perche' una modifica superficiale produce spesso errori di tipo, di indentazione o di flusso.

Errori frequenti dei principianti

  • confondere Python con un editor: Python esegue codice, l'editor lo scrive
  • saltare l'indentazione: in Python e' parte della sintassi
  • copiare codice senza eseguirlo passo per passo

Tabella riassuntiva

Concetto Significato

Script File .py contenente istruzioni eseguibili

Interprete Programma che legge ed esegue istruzioni Python

Runtime Momento in cui il codice produce effetti e risultati

Quiz di fine capitolo - 10 domande a risposta multipla

  1. Nel capitolo '1. Introduzione a Python', qual e' l'obiettivo principale? A) memorizzare definizioni isolate B) collegare teoria e codice eseguibile C) evitare gli esempi D) scrivere codice senza provarlo Soluzione: B. Il manuale privilegia sempre il collegamento tra concetto ed esecuzione.
  2. Quale abitudine riduce maggiormente gli errori? A) scrivere tutto in una riga B) testare spesso piccoli pezzi C) non usare nomi descrittivi D) ignorare i messaggi d'errore Soluzione: B. Il controllo frequente rende i bug piu' facili da isolare.
  3. In un esercizio d'esame, prima di programmare conviene A) scrivere subito codice casuale B) capire input, output e casi limite C) saltare la progettazione D) copiare una soluzione simile Soluzione: B. La progettazione evita soluzioni non coerenti con la traccia.
  4. Un commento utile dovrebbe A) ripetere ogni riga B) spiegare una scelta non ovvia C) sostituire nomi chiari D) nascondere codice confuso Soluzione: B. I commenti chiariscono motivazioni, non devono coprire cattivo stile.
  5. Quando una funzione diventa troppo lunga e' meglio A) aggiungere variabili globali B) dividerla in funzioni piu' piccole C) rimuovere i test D) usare solo print Soluzione: B. Funzioni piccole sono piu' leggibili e testabili.
  6. Un caso limite tipico e' A) un input medio B) una lista vuota C) un nome lungo ma valido D) un commento Soluzione: B. Lista vuota, zero e valori mancanti sono spesso casi critici.
  7. La soluzione piu' robusta e' quella che A) funziona solo sull'esempio B) gestisce anche errori prevedibili C) non usa funzioni D) non stampa risultati Soluzione: B. Un programma d'esame deve gestire i casi richiesti dalla traccia.
  8. La leggibilita' del codice serve per A) farlo sembrare piu' lungo B) ridurre manutenzione e bug C) evitare l'esecuzione D) nascondere la logica Soluzione: B. Codice leggibile e' piu' facile da correggere e valutare.
  9. Una tabella riassuntiva e' utile per A) sostituire tutta la pratica B) confrontare concetti simili C) eliminare gli esercizi D) evitare esempi Soluzione: B. Il confronto aiuta a scegliere lo strumento corretto.
  10. Durante il debug conviene modificare A) molte righe insieme B) una cosa alla volta C) solo i commenti D) il nome del file a caso Soluzione: B. Modifiche isolate rendono verificabile la causa del bug.

Domande d'esame - 5 tracce con risposta ideale

  1. Spiega il concetto principale del capitolo e costruisci un esempio minimale. Traccia della risposta ideale: La risposta deve definire il concetto, indicare quando si usa e mostrare un frammento di codice coerente.
  2. Individua due errori frequenti e proponi una correzione. Traccia della risposta ideale: La risposta ideale collega l'errore al comportamento a runtime e mostra la versione corretta.
  3. Confronta questo argomento con un concetto gia' studiato. Traccia della risposta ideale: Bisogna evidenziare somiglianze, differenze e criteri di scelta in un problema pratico.
  4. Scrivi una funzione o un mini-script che risolva una traccia semplice. Traccia della risposta ideale: La soluzione deve essere leggibile, testabile e commentata nei passaggi essenziali.
  5. Commenta la complessita' o la robustezza della soluzione proposta. Traccia della risposta ideale: La risposta deve citare input, casi limite, eventuali controlli e costo computazionale quando pertinente.

Tabella riassuntiva

Strumento Uso

Terminale Esecuzione di script e installazione pacchetti

IDE/editor Scrittura, completamento e debugging

venv Isola le dipendenze del progetto

Quiz di fine capitolo - 10 domande a risposta multipla

  1. Nel capitolo '2. Installazione e ambiente di sviluppo', qual e' l'obiettivo principale? A) memorizzare definizioni isolate B) collegare teoria e codice eseguibile C) evitare gli esempi D) scrivere codice senza provarlo Soluzione: B. Il manuale privilegia sempre il collegamento tra concetto ed esecuzione.
  2. Quale abitudine riduce maggiormente gli errori? A) scrivere tutto in una riga B) testare spesso piccoli pezzi C) non usare nomi descrittivi D) ignorare i messaggi d'errore Soluzione: B. Il controllo frequente rende i bug piu' facili da isolare.
  3. In un esercizio d'esame, prima di programmare conviene A) scrivere subito codice casuale B) capire input, output e casi limite C) saltare la progettazione D) copiare una soluzione simile Soluzione: B. La progettazione evita soluzioni non coerenti con la traccia.
  4. Un commento utile dovrebbe A) ripetere ogni riga B) spiegare una scelta non ovvia C) sostituire nomi chiari D) nascondere codice confuso Soluzione: B. I commenti chiariscono motivazioni, non devono coprire cattivo stile.
  5. Quando una funzione diventa troppo lunga e' meglio A) aggiungere variabili globali B) dividerla in funzioni piu' piccole C) rimuovere i test D) usare solo print Soluzione: B. Funzioni piccole sono piu' leggibili e testabili.
  6. Un caso limite tipico e' A) un input medio B) una lista vuota C) un nome lungo ma valido D) un commento Soluzione: B. Lista vuota, zero e valori mancanti sono spesso casi critici.
  7. La soluzione piu' robusta e' quella che A) funziona solo sull'esempio B) gestisce anche errori prevedibili C) non usa funzioni D) non stampa risultati Soluzione: B. Un programma d'esame deve gestire i casi richiesti dalla traccia.
  8. La leggibilita' del codice serve per A) farlo sembrare piu' lungo B) ridurre manutenzione e bug C) evitare l'esecuzione D) nascondere la logica Soluzione: B. Codice leggibile e' piu' facile da correggere e valutare.
  9. Una tabella riassuntiva e' utile per A) sostituire tutta la pratica B) confrontare concetti simili C) eliminare gli esercizi D) evitare esempi Soluzione: B. Il confronto aiuta a scegliere lo strumento corretto.
  10. Durante il debug conviene modificare A) molte righe insieme B) una cosa alla volta C) solo i commenti D) il nome del file a caso Soluzione: B. Modifiche isolate rendono verificabile la causa del bug.

Domande d'esame - 5 tracce con risposta ideale

  1. Spiega il concetto principale del capitolo e costruisci un esempio minimale. Traccia della risposta ideale: La risposta deve definire il concetto, indicare quando si usa e mostrare un frammento di codice coerente.
  2. Individua due errori frequenti e proponi una correzione. Traccia della risposta ideale: La risposta ideale collega l'errore al comportamento a runtime e mostra la versione corretta.
  3. Confronta questo argomento con un concetto gia' studiato. Traccia della risposta ideale: Bisogna evidenziare somiglianze, differenze e criteri di scelta in un problema pratico.
  4. Scrivi una funzione o un mini-script che risolva una traccia semplice. Traccia della risposta ideale: La soluzione deve essere leggibile, testabile e commentata nei passaggi essenziali.
  5. Commenta la complessita' o la robustezza della soluzione proposta. Traccia della risposta ideale: La risposta deve citare input, casi limite, eventuali controlli e costo computazionale quando pertinente.

3. Variabili e tipi di dato

Questo capitolo affronta variabili, assegnazione e tipi fondamentali int, float, string e bool. L'obiettivo e'

costruire una comprensione operativa: non basta conoscere la definizione, bisogna saper usare il concetto

in un programma reale, leggere il codice di altri e riconoscere gli errori tipici che compaiono in un compito

d'esame.

Obiettivi di apprendimento

  • assegnare valori a variabili
  • riconoscere il tipo di un valore
  • scegliere il tipo adatto al problema

Spiegazione teorica essenziale

In Python il concetto centrale di questo argomento e' la relazione tra dato, istruzione e risultato. Ogni

istruzione viene interpretata dall'ambiente di esecuzione e produce un effetto: un valore calcolato, una

modifica dello stato del programma, una stampa su schermo, un accesso a memoria o un'interazione con

risorse esterne. Per preparare bene l'esame e' importante distinguere sempre tre livelli: sintassi, semantica

e comportamento a runtime. La sintassi stabilisce come si scrive il codice; la semantica stabilisce cosa

significa; il runtime mostra cosa succede davvero quando il programma viene eseguito.

Un buon metodo di studio consiste nel leggere un esempio riga per riga e chiedersi: quali variabili esistono

in questo punto? che tipo hanno? quale valore contengono? quale istruzione viene eseguita dopo? quale

caso limite potrebbe rompere il programma? Questo approccio e' lo stesso richiesto nelle prove scritte,

negli esercizi di laboratorio e nei progetti pratici.

Esempio guidato

eta = 20 # int media = 27.5 # float corso = "Python" # string superato = True # bool

print(type(eta), type(media), type(corso), type(superato))

L'esempio va studiato seguendo il flusso di esecuzione. Prima si identificano gli input, poi si osservano le

trasformazioni e infine si controlla l'output. Le righe commentate non servono solo a descrivere il codice:

aiutano a fissare il ragionamento algoritmico e a rendere il programma leggibile anche a distanza di

tempo.

Collegamento con l'esame

In una prova universitaria questo argomento puo' comparire sia come domanda teorica sia come parte di

un esercizio piu' ampio. Per ottenere il punteggio pieno non basta produrre un output corretto sull'esempio

fornito: bisogna dimostrare che il codice funziona anche su casi limite, che i nomi sono comprensibili e che

la soluzione non contiene passaggi inutilmente complicati. Quando la traccia chiede di 'commentare' o

'motivare', occorre spiegare perche' e' stato scelto quel costrutto e quali alternative sarebbero meno

adatte.

Mini-esercizio guidato

Prendi l'esempio del capitolo e modificalo in tre modi: cambia i dati iniziali, aggiungi un controllo sul caso

limite e sposta la logica principale dentro una funzione. Questo esercizio obbliga a capire davvero il codice,

perche' una modifica superficiale produce spesso errori di tipo, di indentazione o di flusso.

Errori frequenti dei principianti

  • scrivere numeri con la virgola invece del punto decimale
  • confondere '3' con 3
  • usare nomi di variabili poco chiari o uguali a parole riservate

4. Operatori

Questo capitolo affronta operatori aritmetici, logici, relazionali, di appartenenza e precedenza. L'obiettivo

e' costruire una comprensione operativa: non basta conoscere la definizione, bisogna saper usare il

concetto in un programma reale, leggere il codice di altri e riconoscere gli errori tipici che compaiono in un

compito d'esame.

Obiettivi di apprendimento

  • calcolare espressioni
  • usare confronti e operatori logici
  • prevedere il risultato di un'espressione

Spiegazione teorica essenziale

In Python il concetto centrale di questo argomento e' la relazione tra dato, istruzione e risultato. Ogni

istruzione viene interpretata dall'ambiente di esecuzione e produce un effetto: un valore calcolato, una

modifica dello stato del programma, una stampa su schermo, un accesso a memoria o un'interazione con

risorse esterne. Per preparare bene l'esame e' importante distinguere sempre tre livelli: sintassi, semantica

e comportamento a runtime. La sintassi stabilisce come si scrive il codice; la semantica stabilisce cosa

significa; il runtime mostra cosa succede davvero quando il programma viene eseguito.

Un buon metodo di studio consiste nel leggere un esempio riga per riga e chiedersi: quali variabili esistono

in questo punto? che tipo hanno? quale valore contengono? quale istruzione viene eseguita dopo? quale

caso limite potrebbe rompere il programma? Questo approccio e' lo stesso richiesto nelle prove scritte,

negli esercizi di laboratorio e nei progetti pratici.

Esempio guidato

prezzo = 120 sconto = 0. finale = prezzo * (1 - sconto)

valido = finale < 100 or prezzo >= 120 print(finale, valido)

L'esempio va studiato seguendo il flusso di esecuzione. Prima si identificano gli input, poi si osservano le

trasformazioni e infine si controlla l'output. Le righe commentate non servono solo a descrivere il codice:

aiutano a fissare il ragionamento algoritmico e a rendere il programma leggibile anche a distanza di

tempo.

Collegamento con l'esame

In una prova universitaria questo argomento puo' comparire sia come domanda teorica sia come parte di

un esercizio piu' ampio. Per ottenere il punteggio pieno non basta produrre un output corretto sull'esempio

fornito: bisogna dimostrare che il codice funziona anche su casi limite, che i nomi sono comprensibili e che

la soluzione non contiene passaggi inutilmente complicati. Quando la traccia chiede di 'commentare' o

'motivare', occorre spiegare perche' e' stato scelto quel costrutto e quali alternative sarebbero meno

adatte.

Mini-esercizio guidato

Prendi l'esempio del capitolo e modificalo in tre modi: cambia i dati iniziali, aggiungi un controllo sul caso

limite e sposta la logica principale dentro una funzione. Questo esercizio obbliga a capire davvero il codice,

perche' una modifica superficiale produce spesso errori di tipo, di indentazione o di flusso.

Errori frequenti dei principianti

  • usare = al posto di == nei confronti
  • dimenticare la precedenza degli operatori
  • confondere / con //

Tabella riassuntiva

Operatore Significato

      • / Aritmetica di base

// % ** Divisione intera, resto, potenza

== != < > Confronto and or not Logica booleana

Quiz di fine capitolo - 10 domande a risposta multipla

  1. Nel capitolo '4. Operatori', qual e' l'obiettivo principale? A) memorizzare definizioni isolate B) collegare teoria e codice eseguibile C) evitare gli esempi D) scrivere codice senza provarlo Soluzione: B. Il manuale privilegia sempre il collegamento tra concetto ed esecuzione.
  2. Quale abitudine riduce maggiormente gli errori? A) scrivere tutto in una riga B) testare spesso piccoli pezzi C) non usare nomi descrittivi D) ignorare i messaggi d'errore Soluzione: B. Il controllo frequente rende i bug piu' facili da isolare.
  3. In un esercizio d'esame, prima di programmare conviene A) scrivere subito codice casuale B) capire input, output e casi limite C) saltare la progettazione D) copiare una soluzione simile Soluzione: B. La progettazione evita soluzioni non coerenti con la traccia.
  4. Un commento utile dovrebbe A) ripetere ogni riga B) spiegare una scelta non ovvia C) sostituire nomi chiari D) nascondere codice confuso Soluzione: B. I commenti chiariscono motivazioni, non devono coprire cattivo stile.
  5. Quando una funzione diventa troppo lunga e' meglio A) aggiungere variabili globali B) dividerla in funzioni piu' piccole C) rimuovere i test D) usare solo print Soluzione: B. Funzioni piccole sono piu' leggibili e testabili.
  6. Un caso limite tipico e' A) un input medio B) una lista vuota C) un nome lungo ma valido D) un commento Soluzione: B. Lista vuota, zero e valori mancanti sono spesso casi critici.
  7. La soluzione piu' robusta e' quella che A) funziona solo sull'esempio B) gestisce anche errori prevedibili C) non usa funzioni D) non stampa risultati Soluzione: B. Un programma d'esame deve gestire i casi richiesti dalla traccia.
  8. La leggibilita' del codice serve per A) farlo sembrare piu' lungo B) ridurre manutenzione e bug C) evitare l'esecuzione D) nascondere la logica Soluzione: B. Codice leggibile e' piu' facile da correggere e valutare.
  9. Una tabella riassuntiva e' utile per A) sostituire tutta la pratica B) confrontare concetti simili C) eliminare gli esercizi D) evitare esempi Soluzione: B. Il confronto aiuta a scegliere lo strumento corretto.
  10. Durante il debug conviene modificare A) molte righe insieme B) una cosa alla volta C) solo i commenti D) il nome del file a caso Soluzione: B. Modifiche isolate rendono verificabile la causa del bug.

Domande d'esame - 5 tracce con risposta ideale

  1. Spiega il concetto principale del capitolo e costruisci un esempio minimale. Traccia della risposta ideale: La risposta deve definire il concetto, indicare quando si usa e mostrare un frammento di codice coerente.
  2. Individua due errori frequenti e proponi una correzione. Traccia della risposta ideale: La risposta ideale collega l'errore al comportamento a runtime e mostra la versione corretta.
  3. Confronta questo argomento con un concetto gia' studiato. Traccia della risposta ideale: Bisogna evidenziare somiglianze, differenze e criteri di scelta in un problema pratico.
  4. Scrivi una funzione o un mini-script che risolva una traccia semplice. Traccia della risposta ideale: La soluzione deve essere leggibile, testabile e commentata nei passaggi essenziali.
  5. Commenta la complessita' o la robustezza della soluzione proposta. Traccia della risposta ideale: La risposta deve citare input, casi limite, eventuali controlli e costo computazionale quando pertinente.

Tabella riassuntiva

Funzione Uso

input() Legge testo da tastiera

print() Mostra dati a schermo

f-string Inserisce valori dentro una stringa

Quiz di fine capitolo - 10 domande a risposta multipla

  1. Nel capitolo '5. Input e output', qual e' l'obiettivo principale? A) memorizzare definizioni isolate B) collegare teoria e codice eseguibile C) evitare gli esempi D) scrivere codice senza provarlo Soluzione: B. Il manuale privilegia sempre il collegamento tra concetto ed esecuzione.
  2. Quale abitudine riduce maggiormente gli errori? A) scrivere tutto in una riga B) testare spesso piccoli pezzi C) non usare nomi descrittivi D) ignorare i messaggi d'errore Soluzione: B. Il controllo frequente rende i bug piu' facili da isolare.
  3. In un esercizio d'esame, prima di programmare conviene A) scrivere subito codice casuale B) capire input, output e casi limite C) saltare la progettazione D) copiare una soluzione simile Soluzione: B. La progettazione evita soluzioni non coerenti con la traccia.
  4. Un commento utile dovrebbe A) ripetere ogni riga B) spiegare una scelta non ovvia C) sostituire nomi chiari D) nascondere codice confuso Soluzione: B. I commenti chiariscono motivazioni, non devono coprire cattivo stile.
  5. Quando una funzione diventa troppo lunga e' meglio A) aggiungere variabili globali B) dividerla in funzioni piu' piccole C) rimuovere i test D) usare solo print Soluzione: B. Funzioni piccole sono piu' leggibili e testabili.
  6. Un caso limite tipico e' A) un input medio B) una lista vuota C) un nome lungo ma valido D) un commento Soluzione: B. Lista vuota, zero e valori mancanti sono spesso casi critici.
  7. La soluzione piu' robusta e' quella che A) funziona solo sull'esempio B) gestisce anche errori prevedibili C) non usa funzioni D) non stampa risultati Soluzione: B. Un programma d'esame deve gestire i casi richiesti dalla traccia.
  8. La leggibilita' del codice serve per A) farlo sembrare piu' lungo B) ridurre manutenzione e bug C) evitare l'esecuzione D) nascondere la logica Soluzione: B. Codice leggibile e' piu' facile da correggere e valutare.
  9. Una tabella riassuntiva e' utile per A) sostituire tutta la pratica B) confrontare concetti simili C) eliminare gli esercizi D) evitare esempi Soluzione: B. Il confronto aiuta a scegliere lo strumento corretto.
  10. Durante il debug conviene modificare A) molte righe insieme B) una cosa alla volta C) solo i commenti D) il nome del file a caso Soluzione: B. Modifiche isolate rendono verificabile la causa del bug.

Domande d'esame - 5 tracce con risposta ideale

  1. Spiega il concetto principale del capitolo e costruisci un esempio minimale. Traccia della risposta ideale: La risposta deve definire il concetto, indicare quando si usa e mostrare un frammento di codice coerente.
  2. Individua due errori frequenti e proponi una correzione. Traccia della risposta ideale: La risposta ideale collega l'errore al comportamento a runtime e mostra la versione corretta.
  3. Confronta questo argomento con un concetto gia' studiato. Traccia della risposta ideale: Bisogna evidenziare somiglianze, differenze e criteri di scelta in un problema pratico.
  4. Scrivi una funzione o un mini-script che risolva una traccia semplice. Traccia della risposta ideale: La soluzione deve essere leggibile, testabile e commentata nei passaggi essenziali.
  5. Commenta la complessita' o la robustezza della soluzione proposta. Traccia della risposta ideale: La risposta deve citare input, casi limite, eventuali controlli e costo computazionale quando pertinente.

6. Strutture condizionali

Questo capitolo affronta if, elif, else e costruzione di decisioni corrette. L'obiettivo e' costruire una

comprensione operativa: non basta conoscere la definizione, bisogna saper usare il concetto in un

programma reale, leggere il codice di altri e riconoscere gli errori tipici che compaiono in un compito

d'esame.

Obiettivi di apprendimento

  • modellare scelte alternative
  • ordinare condizioni dalla piu' specifica alla piu' generale
  • evitare rami irraggiungibili

Spiegazione teorica essenziale

In Python il concetto centrale di questo argomento e' la relazione tra dato, istruzione e risultato. Ogni

istruzione viene interpretata dall'ambiente di esecuzione e produce un effetto: un valore calcolato, una

modifica dello stato del programma, una stampa su schermo, un accesso a memoria o un'interazione con

risorse esterne. Per preparare bene l'esame e' importante distinguere sempre tre livelli: sintassi, semantica

e comportamento a runtime. La sintassi stabilisce come si scrive il codice; la semantica stabilisce cosa

significa; il runtime mostra cosa succede davvero quando il programma viene eseguito.

Un buon metodo di studio consiste nel leggere un esempio riga per riga e chiedersi: quali variabili esistono

in questo punto? che tipo hanno? quale valore contengono? quale istruzione viene eseguita dopo? quale

caso limite potrebbe rompere il programma? Questo approccio e' lo stesso richiesto nelle prove scritte,

negli esercizi di laboratorio e nei progetti pratici.

Esempio guidato

voto = 28 if voto >= 30: esito = "eccellente" elif voto >= 18: esito = "superato" else: esito = "non superato" print(esito)

L'esempio va studiato seguendo il flusso di esecuzione. Prima si identificano gli input, poi si osservano le

trasformazioni e infine si controlla l'output. Le righe commentate non servono solo a descrivere il codice:

aiutano a fissare il ragionamento algoritmico e a rendere il programma leggibile anche a distanza di

tempo.

Collegamento con l'esame

In una prova universitaria questo argomento puo' comparire sia come domanda teorica sia come parte di

un esercizio piu' ampio. Per ottenere il punteggio pieno non basta produrre un output corretto sull'esempio

fornito: bisogna dimostrare che il codice funziona anche su casi limite, che i nomi sono comprensibili e che

la soluzione non contiene passaggi inutilmente complicati. Quando la traccia chiede di 'commentare' o

'motivare', occorre spiegare perche' e' stato scelto quel costrutto e quali alternative sarebbero meno

adatte.

Mini-esercizio guidato

Prendi l'esempio del capitolo e modificalo in tre modi: cambia i dati iniziali, aggiungi un controllo sul caso

limite e sposta la logica principale dentro una funzione. Questo esercizio obbliga a capire davvero il codice,

perche' una modifica superficiale produce spesso errori di tipo, di indentazione o di flusso.

Errori frequenti dei principianti

  • mettere condizioni sovrapposte nell'ordine sbagliato
  • dimenticare i due punti
  • usare elif quando servirebbero if indipendenti

7. Cicli

Questo capitolo affronta for, while, range, break, continue e iterazione controllata. L'obiettivo e' costruire

una comprensione operativa: non basta conoscere la definizione, bisogna saper usare il concetto in un

programma reale, leggere il codice di altri e riconoscere gli errori tipici che compaiono in un compito

d'esame.

Obiettivi di apprendimento

  • ripetere istruzioni su sequenze
  • scegliere tra for e while
  • evitare cicli infiniti

Spiegazione teorica essenziale

In Python il concetto centrale di questo argomento e' la relazione tra dato, istruzione e risultato. Ogni

istruzione viene interpretata dall'ambiente di esecuzione e produce un effetto: un valore calcolato, una

modifica dello stato del programma, una stampa su schermo, un accesso a memoria o un'interazione con

risorse esterne. Per preparare bene l'esame e' importante distinguere sempre tre livelli: sintassi, semantica

e comportamento a runtime. La sintassi stabilisce come si scrive il codice; la semantica stabilisce cosa

significa; il runtime mostra cosa succede davvero quando il programma viene eseguito.

Un buon metodo di studio consiste nel leggere un esempio riga per riga e chiedersi: quali variabili esistono

in questo punto? che tipo hanno? quale valore contengono? quale istruzione viene eseguita dopo? quale

caso limite potrebbe rompere il programma? Questo approccio e' lo stesso richiesto nelle prove scritte,

negli esercizi di laboratorio e nei progetti pratici.

Esempio guidato

totale = 0 for numero in range(1, 6): totale += numero print(totale)

n = 3 while n > 0: print(n) n -= 1

L'esempio va studiato seguendo il flusso di esecuzione. Prima si identificano gli input, poi si osservano le

trasformazioni e infine si controlla l'output. Le righe commentate non servono solo a descrivere il codice:

aiutano a fissare il ragionamento algoritmico e a rendere il programma leggibile anche a distanza di

tempo.

Collegamento con l'esame

In una prova universitaria questo argomento puo' comparire sia come domanda teorica sia come parte di

un esercizio piu' ampio. Per ottenere il punteggio pieno non basta produrre un output corretto sull'esempio

fornito: bisogna dimostrare che il codice funziona anche su casi limite, che i nomi sono comprensibili e che

la soluzione non contiene passaggi inutilmente complicati. Quando la traccia chiede di 'commentare' o

'motivare', occorre spiegare perche' e' stato scelto quel costrutto e quali alternative sarebbero meno

adatte.

Mini-esercizio guidato

Prendi l'esempio del capitolo e modificalo in tre modi: cambia i dati iniziali, aggiungi un controllo sul caso

limite e sposta la logica principale dentro una funzione. Questo esercizio obbliga a capire davvero il codice,

perche' una modifica superficiale produce spesso errori di tipo, di indentazione o di flusso.

Errori frequenti dei principianti

  • modificare male la variabile di controllo del while
  • confondere range(5) con 1..
  • usare break per mascherare una condizione progettata male

Tabella riassuntiva

Ciclo Uso tipico

for Iterare su range, liste, stringhe

while Ripetere finche' una condizione resta vera

break/continue Controllo esplicito del flusso

Quiz di fine capitolo - 10 domande a risposta multipla

  1. Nel capitolo '7. Cicli', qual e' l'obiettivo principale? A) memorizzare definizioni isolate B) collegare teoria e codice eseguibile C) evitare gli esempi D) scrivere codice senza provarlo Soluzione: B. Il manuale privilegia sempre il collegamento tra concetto ed esecuzione.
  2. Quale abitudine riduce maggiormente gli errori? A) scrivere tutto in una riga B) testare spesso piccoli pezzi C) non usare nomi descrittivi D) ignorare i messaggi d'errore Soluzione: B. Il controllo frequente rende i bug piu' facili da isolare.
  3. In un esercizio d'esame, prima di programmare conviene A) scrivere subito codice casuale B) capire input, output e casi limite C) saltare la progettazione D) copiare una soluzione simile Soluzione: B. La progettazione evita soluzioni non coerenti con la traccia.
  4. Un commento utile dovrebbe A) ripetere ogni riga B) spiegare una scelta non ovvia C) sostituire nomi chiari D) nascondere codice confuso Soluzione: B. I commenti chiariscono motivazioni, non devono coprire cattivo stile.
  5. Quando una funzione diventa troppo lunga e' meglio A) aggiungere variabili globali B) dividerla in funzioni piu' piccole C) rimuovere i test D) usare solo print Soluzione: B. Funzioni piccole sono piu' leggibili e testabili.
  6. Un caso limite tipico e' A) un input medio B) una lista vuota C) un nome lungo ma valido D) un commento Soluzione: B. Lista vuota, zero e valori mancanti sono spesso casi critici.
  7. La soluzione piu' robusta e' quella che A) funziona solo sull'esempio B) gestisce anche errori prevedibili C) non usa funzioni D) non stampa risultati Soluzione: B. Un programma d'esame deve gestire i casi richiesti dalla traccia.
  8. La leggibilita' del codice serve per A) farlo sembrare piu' lungo B) ridurre manutenzione e bug C) evitare l'esecuzione D) nascondere la logica Soluzione: B. Codice leggibile e' piu' facile da correggere e valutare.
  9. Una tabella riassuntiva e' utile per A) sostituire tutta la pratica B) confrontare concetti simili C) eliminare gli esercizi D) evitare esempi Soluzione: B. Il confronto aiuta a scegliere lo strumento corretto.
  10. Durante il debug conviene modificare A) molte righe insieme B) una cosa alla volta C) solo i commenti D) il nome del file a caso Soluzione: B. Modifiche isolate rendono verificabile la causa del bug.

Domande d'esame - 5 tracce con risposta ideale

  1. Spiega il concetto principale del capitolo e costruisci un esempio minimale. Traccia della risposta ideale: La risposta deve definire il concetto, indicare quando si usa e mostrare un frammento di codice coerente.
  2. Individua due errori frequenti e proponi una correzione. Traccia della risposta ideale: La risposta ideale collega l'errore al comportamento a runtime e mostra la versione corretta.
  3. Confronta questo argomento con un concetto gia' studiato. Traccia della risposta ideale: Bisogna evidenziare somiglianze, differenze e criteri di scelta in un problema pratico.
  4. Scrivi una funzione o un mini-script che risolva una traccia semplice. Traccia della risposta ideale: La soluzione deve essere leggibile, testabile e commentata nei passaggi essenziali.
  5. Commenta la complessita' o la robustezza della soluzione proposta. Traccia della risposta ideale: La risposta deve citare input, casi limite, eventuali controlli e costo computazionale quando pertinente.

Tabella riassuntiva

Operazione Esempio

append Aggiunge un elemento

slicing lista[inizio:fine]

comprehension Crea liste filtrando o trasformando

Quiz di fine capitolo - 10 domande a risposta multipla

  1. Nel capitolo '8. Liste', qual e' l'obiettivo principale? A) memorizzare definizioni isolate B) collegare teoria e codice eseguibile C) evitare gli esempi D) scrivere codice senza provarlo Soluzione: B. Il manuale privilegia sempre il collegamento tra concetto ed esecuzione.
  2. Quale abitudine riduce maggiormente gli errori? A) scrivere tutto in una riga B) testare spesso piccoli pezzi C) non usare nomi descrittivi D) ignorare i messaggi d'errore Soluzione: B. Il controllo frequente rende i bug piu' facili da isolare.
  3. In un esercizio d'esame, prima di programmare conviene A) scrivere subito codice casuale B) capire input, output e casi limite C) saltare la progettazione D) copiare una soluzione simile Soluzione: B. La progettazione evita soluzioni non coerenti con la traccia.
  4. Un commento utile dovrebbe A) ripetere ogni riga B) spiegare una scelta non ovvia C) sostituire nomi chiari D) nascondere codice confuso Soluzione: B. I commenti chiariscono motivazioni, non devono coprire cattivo stile.
  5. Quando una funzione diventa troppo lunga e' meglio A) aggiungere variabili globali B) dividerla in funzioni piu' piccole C) rimuovere i test D) usare solo print Soluzione: B. Funzioni piccole sono piu' leggibili e testabili.
  6. Un caso limite tipico e' A) un input medio B) una lista vuota C) un nome lungo ma valido D) un commento Soluzione: B. Lista vuota, zero e valori mancanti sono spesso casi critici.
  7. La soluzione piu' robusta e' quella che A) funziona solo sull'esempio B) gestisce anche errori prevedibili C) non usa funzioni D) non stampa risultati Soluzione: B. Un programma d'esame deve gestire i casi richiesti dalla traccia.
  8. La leggibilita' del codice serve per A) farlo sembrare piu' lungo B) ridurre manutenzione e bug C) evitare l'esecuzione D) nascondere la logica Soluzione: B. Codice leggibile e' piu' facile da correggere e valutare.
  9. Una tabella riassuntiva e' utile per A) sostituire tutta la pratica B) confrontare concetti simili C) eliminare gli esercizi D) evitare esempi Soluzione: B. Il confronto aiuta a scegliere lo strumento corretto.
  10. Durante il debug conviene modificare A) molte righe insieme B) una cosa alla volta C) solo i commenti D) il nome del file a caso Soluzione: B. Modifiche isolate rendono verificabile la causa del bug.

Domande d'esame - 5 tracce con risposta ideale

  1. Spiega il concetto principale del capitolo e costruisci un esempio minimale. Traccia della risposta ideale: La risposta deve definire il concetto, indicare quando si usa e mostrare un frammento di codice coerente.
  2. Individua due errori frequenti e proponi una correzione. Traccia della risposta ideale: La risposta ideale collega l'errore al comportamento a runtime e mostra la versione corretta.
  3. Confronta questo argomento con un concetto gia' studiato. Traccia della risposta ideale: Bisogna evidenziare somiglianze, differenze e criteri di scelta in un problema pratico.
  4. Scrivi una funzione o un mini-script che risolva una traccia semplice. Traccia della risposta ideale: La soluzione deve essere leggibile, testabile e commentata nei passaggi essenziali.
  5. Commenta la complessita' o la robustezza della soluzione proposta. Traccia della risposta ideale: La risposta deve citare input, casi limite, eventuali controlli e costo computazionale quando pertinente.

9. Tuple

Questo capitolo affronta tuple immutabili e uso per record, coordinate e ritorni multipli. L'obiettivo e'

costruire una comprensione operativa: non basta conoscere la definizione, bisogna saper usare il concetto

in un programma reale, leggere il codice di altri e riconoscere gli errori tipici che compaiono in un compito

d'esame.

Obiettivi di apprendimento

  • capire l'immutabilita'
  • usare tuple per dati correlati
  • sfruttare unpacking

Spiegazione teorica essenziale

In Python il concetto centrale di questo argomento e' la relazione tra dato, istruzione e risultato. Ogni

istruzione viene interpretata dall'ambiente di esecuzione e produce un effetto: un valore calcolato, una

modifica dello stato del programma, una stampa su schermo, un accesso a memoria o un'interazione con

risorse esterne. Per preparare bene l'esame e' importante distinguere sempre tre livelli: sintassi, semantica

e comportamento a runtime. La sintassi stabilisce come si scrive il codice; la semantica stabilisce cosa

significa; il runtime mostra cosa succede davvero quando il programma viene eseguito.

Un buon metodo di studio consiste nel leggere un esempio riga per riga e chiedersi: quali variabili esistono

in questo punto? che tipo hanno? quale valore contengono? quale istruzione viene eseguita dopo? quale

caso limite potrebbe rompere il programma? Questo approccio e' lo stesso richiesto nelle prove scritte,

negli esercizi di laboratorio e nei progetti pratici.

Esempio guidato

punto = (3, 5) x, y = punto print(x + y)

def min_max(valori): return min(valori), max(valori)

L'esempio va studiato seguendo il flusso di esecuzione. Prima si identificano gli input, poi si osservano le

trasformazioni e infine si controlla l'output. Le righe commentate non servono solo a descrivere il codice:

aiutano a fissare il ragionamento algoritmico e a rendere il programma leggibile anche a distanza di

tempo.

Collegamento con l'esame

In una prova universitaria questo argomento puo' comparire sia come domanda teorica sia come parte di

un esercizio piu' ampio. Per ottenere il punteggio pieno non basta produrre un output corretto sull'esempio

fornito: bisogna dimostrare che il codice funziona anche su casi limite, che i nomi sono comprensibili e che

la soluzione non contiene passaggi inutilmente complicati. Quando la traccia chiede di 'commentare' o

'motivare', occorre spiegare perche' e' stato scelto quel costrutto e quali alternative sarebbero meno

adatte.

Mini-esercizio guidato

Prendi l'esempio del capitolo e modificalo in tre modi: cambia i dati iniziali, aggiungi un controllo sul caso

limite e sposta la logica principale dentro una funzione. Questo esercizio obbliga a capire davvero il codice,

perche' una modifica superficiale produce spesso errori di tipo, di indentazione o di flusso.

Errori frequenti dei principianti

  • provare a modificare una tupla come una lista
  • creare una tupla singola senza virgola
  • usare tuple per dati che devono cambiare spesso