
Di cosa si occupa questo corso?
Come si può imparare a scrivere un programma? Programmatori si nasce o si diventa?
In questa prima sezione del corso cercherò di spiegarti come ragionano i programmatori. Questo ci permetterà di acquisire dei metodi per affrontare i problemi e risolverli prima "con carta e penna" e poi in Python.
Useremo degli schemi a blocchi per cercare di raffigurare i processi e per poi tradurli in un qualsiasi linguaggio di programmazione. Con questo approccio passare dal diagramma al linguaggio Python sarò immediato, inoltre lo potrai applicare a qualsiasi altro linguaggio di programmazione. Una volta che hai imparato a pedalare, puoi scegliere la bicicletta che più preferisci!
Obiettivo del corso
Cercherò di insegnarti a scrivere un programma in modo autonomo e poi a tradurlo in Python.
Prima di imparare a usare Python è bene imparare a programmare. Non è una competenza che si può acquisire in breve tempo, ma se sapremo cosa e come esercitarci, diventeremo presto esperti. Ogni programma è formato una composizione di tre ingredienti:
sequenze
diramazioni
ripetizioni
Per quanto incredibile è proprio così e non è farina del mio sacco: Teorema di Bohm-Jacopini (1966).
Esercizio: prova a descrivere un processo, un compito complesso, individuando almeno una sequenza, una diramazione e il flusso di operazioni.
In questa lezione impareremo a usare i blocchi per descrivere i processi.
Puoi consultare il testo della lezione: https://www.zeppelinmaker.it/2021/05/03/p-4-scrivere-un-programma/?v=532773df6f8a
Esercizio: descrivi il processo che hai individuato nella scorsa lezione utilizzando i blocchi.
Scopriamo quali strumenti possiamo utilizzare per programmare in Python.
Proseguiamo con i nostri esperimenti di stampa. La funzione print() può essere utilizzata in numerosi modi e prevedere vari parametri che ora esploreremo con alcune linee di codice.
Vedi anche: https://www.zeppelinmaker.it/2021/05/04/p-5-esperimenti-di-stampa/?v=532773df6f8a
Le variabili servono per memorizzare dati e informazioni durante l’esecuzione di un programma. Potete chiedere delle informazioni all’utilizzatore del vostro software, per esempio la sua data di nascita e quindi salvarla all’interno di una variabile per usarla in un secondo momento, per esempio per calcolare le tasse dovute quest’anno.
Vedi anche: https://www.zeppelinmaker.it/2021/05/04/p-6-variabili/?v=532773df6f8a
Introduciamo un’istruzione del linguaggio molto utile che ci permetterà di creare i primi programmi interattivi. Potremo rivolgere delle domande all’utilizzatore dei nostri programmi e salvare le risposte fornite in una variabile.
Il comando da utilizzare si chiama input(). Tra le due parentesi inseriremo la domanda da porre.
Vedi anche: https://www.zeppelinmaker.it/2021/05/05/p-7-interrogare-lutente/?v=532773df6f8a
Il flusso di esecuzione di un programma non è mai lineare. Il software deve far fronte a quello che accade, ai valori dei dati che si modificano durante l’esecuzione e prendere delle semplici decisioni.
https://www.zeppelinmaker.it/2021/05/05/p-8-semplici-test/?v=532773df6f8a
Approfondiamo l'uso dei test usando elif per avere più alternative.
https://www.zeppelinmaker.it/2021/05/05/p-8-semplici-test/?v=532773df6f8a
Se una variabile è un cassetto, allora una lista è un cassetto con degli scomparti. Anche le liste devono avere un nome e in più servirà un indice, necessario per selezionare lo scomparto interno che ci serve.
https://www.zeppelinmaker.it/2021/05/05/p-9-liste/?v=532773df6f8a
I computer nascono per eseguire compiti ripetitivi. Vediamo com impostare in Python un ciclo che possa percorrere gli elementi di un’array e stamparli uno a uno sullo schermo.
A differenza di altri linguaggi, in Python possiamo utilizzare una scrittura molto semplice che utilizza la parola chiave for. Un ciclo for è adatto per esplorare una lista oppure per ripetere delle operazioni per un numero di volte prefissato.
https://www.zeppelinmaker.it/2021/05/05/p-10-il-ciclo-for-ripetere-operazioni/
A volte abbiamo bisogno di ripetere delle operazioni senza sapere quando sarà necessario terminare. Immaginate di voler costruire un sistema automatico per riscaldare una pentola d’acqua con una resistenza elettrica. Un sensore misurerà la temperatura per poter spegnere l’elemento riscaldante quando abbiamo raggiunto la temperatura di 100°C. Il codice di controllo:
attiva l’elemento riscaldante;
misura la temperatura del liquido;
se la temperatura è pari a 100°C interrompe la sequenza di riscaldamento.
È chiaro che il tempo necessario per riscaldare l’acqua dipenderà dalla sua quantità e quindi non sappiamo a priori quante iterazioni saranno necessarie. In questi casi è preferibile utilizzare l’istruzione while, che ripete delle istruzioni fino a che la condizione che controlla è vera (funziona un po’ come se fosse un if).
https://www.zeppelinmaker.it/2021/05/17/p-19-il-ciclo-while/?v=532773df6f8a
Qualche esperimento con Liste e Cicli
Le istruzioni break e continue permettono di interrompere l'esecuzione di un ciclo for o while.
https://www.zeppelinmaker.it/2021/05/18/p-20-break-e-continue-nel-ciclo-while/?v=532773df6f8a
Oltre alle liste, Pythion può gestire tuple e insiemi.
Le tuple: https://www.zeppelinmaker.it/2021/05/19/p-21-tuple/?v=532773df6f8a
Gli insiemi: https://www.zeppelinmaker.it/2021/05/25/p-22-insiemi/?v=532773df6f8a
I dizionari permettono di salvare delle coppie chiave-valore e recuperarle velocemente.
Salviamo e leggiamo informazioni con i file di testo
Realizziamo un editor di testi minimale ma in grado di leggere e salvare da file. Un esercizio impegnativo ma di grande soddisfazione.
Cosa sono le funzioni? cosa cambia dalle procedure? Creiamone alcune in Python e vediamo come funzionano.
Fino ad ora abbiamo utilizzato le stringhe in modo abbastanza semplice e istintivo ma questo tipo di “oggetti” in Python offrono varie possibilità di elaborazione. Una stringa è un messaggio, un testo o semplicemente una sequenza di caratteri delimitati da una coppia di virgolette.
link: https://www.zeppelinmaker.it/2021/06/09/p-25-stringhe/?v=532773df6f8a
Vediamo come comporre più espressioni per modellare comportamenti complessi. Useremo gli operatori booleani OR, AND e NOT.
Crea un programma che stampa la tabella della verità dell'espressione:
(A and B) or (not A and C)
Memorizza i valori delle variabili A, B e C in liste da 8 elementi.
Scorri le liste con un for, estrai i valori corrispettivi e calcola il valore dell'espressione.
In Python True e False equivalgono anche a 1 e 0. Nelle liste puoi usare la convenzione che preferisci.
Per essere certi che il valore estratto da una lista sia proprio booleano, possiamo "passarlo" a bool() che si comporta in modo analogo a int().
Nelle risorse trovi una possibile soluzione.
Comprendiamo cosa è lo "scope": parliamo di visibilità delle variabili.
Impariamo a scrivere programmi "ben fatti" in Python, aggiungendo uno script principale e un modulo da importare.
Impariamo a conoscere e utilizzare il debugger di Python (da Thonny)
Realizziamo un editor di testi in Python.
Realizziamo una rubrica telefonica in Python
Scriviamo un programma che individua il numero più grande all'interno di una lista.
Puoi trovere risorse aggiuntive consultando il mio sito http://www.zeppelinmaker.it.
Corso di Python: https://www.zeppelinmaker.it/il-corso-di-python/?v=532773df6f8a
Il libro Programmare: https://www.zeppelinmaker.it/programmare-2/?v=532773df6f8a
Come si può imparare a scrivere un programma? Programmatori si nasce o si diventa?
In questa prima sezione del corso cercherò di spiegarti come ragionano i programmatori. Questo ci permetterà di acquisire dei metodi per affrontare i problemi e risolverli prima "con carta e penna" e poi in Python.
Useremo degli schemi a blocchi per cercare di raffigurare i processi e per poi tradurli in un qualsiasi linguaggio di programmazione. Con questo approccio passare dal diagramma al linguaggio Python sarò immediato, inoltre lo potrai applicare a qualsiasi altro linguaggio di programmazione. Una volta che hai imparato a pedalare, puoi scegliere la bicicletta che più preferisci!
Nelle prime sezioni cercheremo di capire come ragiona un programmatore e che tipo di strumenti possiamo utilizzare per definire il comportamento di un programma. Cercheremo di individuare degli esempi e di scrivere delle soluzioni.
Una volta imparato a definire i nostri programmi rtamite il sistema dei blocchi, proveremo a tradurli in Python. Troverai quindi una semplice introduzione delle istruzioni fondamentali di Python che useremo per tradurre i diagrammi in codice funzionante. Il mio obiettivo è quello di renderti autonomo nella scrittura di programmi.
Per seguire il corso è necessario avere un computer con installata l'ultima versione di Python. Per scrivere il codice utilizzeremo il programma Thonny, un ambiente di sviluppo molto semplice e adatto ai principianti.