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


Appunti lezioni di computer science CLEACC (python, secondo parziale), Appunti di Informatica gestionale

appunti delle lezioni di computer science relativi alla seconda parte del corso (python) con il professore Maurizio De Pra. Basati esclusivamente sulle lezioni e gli esercizi in classe.

Tipologia: Appunti

2021/2022

In vendita dal 18/04/2023

alice-dora
alice-dora 🇮🇹

15 documenti

1 / 10

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
LEZIONE 9 (Introduzione alla programmazione)
Che cos’è la programmazione? Istruire la macchina a fare qualcosa, a risolvere un problema
evitando che faccia operazioni inutili.
NB. Linguaggi di programmazione permettono il dialogo tra uomo e macchina, sono linguaggi
formali (ha una sintassi) e ne esistono diversi (ma molto simili).
Operazioni: matematiche, condizionali, cicli.
Programma software è sequenza di comandi attraverso la quale il calcolatore esegue
un’elaborazione.
Modularità: uso dei blocchettini che mi premettono di richiamare quello che mi serve quando mi
serve.
In Phyton: viola per funzioni, rosso per istruzioni, verde per il testo, nero per codice normale. NB.
Importanti i commenti perché rendono facilmente leggibile il codice senza dover ripercorrere tutti
i passaggi.
NB. Come viene tradotto il linguaggio di programmazione per la cpu? Compilazione: traduce
l’intero programma prima di eseguirlo (pro: più veloce, eseguibile ovunque. Contro: tradotto in
linguaggio intermedio, tutto su ram), interpretazione: traduce riga per riga mentre esegue (più
lento nel complesso, ma è più graduale).
PYTHON è interpretato (una riga per volta), interattivo (interfaccia dove posso dare un comando
ed avere subito la risposta), orientato agli oggetti (mi conviene creare oggetti virtuali che hanno
caratteristiche, possono compiere azioni e a cui posso cambiare le caratteristiche=non riscrivo
tutto da capo ogni volta), è molto semplice ed open source (l’ha usato google). Per cosa si usa? Un
sacco di cose.
Shell lo uso quando devo eseguire il programma, quando lo scrivo uso editor (apro idle, mi da
direttamente la shell, per passare all’editor file, new file e sono nell’editor). Salvare la shell serve
solo per tener traccia di quello che ho fatto (es. errori che mi voglio ricordare).
OPERAZIONI:
Simbolo Operazione Descrizione
+ Addizione Somma due numeri
- Sottrazione Sottrae due numeri
* Moltiplicazione Moltiplica due numeri
/ Divisione Divide due numeri e restituisce il risultato come numero in virgola
mobile
// Divisione interaDivide due numeri e restituisce il risultato come intero (*) senza resto
% Modulo (resto) Divide un numero intero per un altro e restituisce il resto della
divisione
** Esponente Eleva un numero a una potenza
esegue prima esponenti, poi moltiplicazione e divisione e infine somma e differenza (ma
comunque rispetta le parentesi).
NB. 9<> da 9.0 , sono tipi di dato diverso
LEZIONE 10 (basics)
Obiettivi della lezione
• Inserire le prime istruzioni in Python
• Comprendere l’uso delle variabili e i diversi tipi di dati • Creare il primo programma
Parentesi: si usano le tonde annidate per le espressioni
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Appunti lezioni di computer science CLEACC (python, secondo parziale) e più Appunti in PDF di Informatica gestionale solo su Docsity!

LEZIONE 9 (Introduzione alla programmazione)

Che cos’è la programmazione? Istruire la macchina a fare qualcosa, a risolvere un problema evitando che faccia operazioni inutili. NB. Linguaggi di programmazione permettono il dialogo tra uomo e macchina, sono linguaggi formali (ha una sintassi) e ne esistono diversi (ma molto simili). Operazioni: matematiche, condizionali, cicli. Programma software è sequenza di comandi attraverso la quale il calcolatore esegue un’elaborazione. Modularità: uso dei blocchettini che mi premettono di richiamare quello che mi serve quando mi serve. In Phyton: viola per funzioni, rosso per istruzioni, verde per il testo, nero per codice normale. NB. Importanti i commenti perché rendono facilmente leggibile il codice senza dover ripercorrere tutti i passaggi. NB. Come viene tradotto il linguaggio di programmazione per la cpu? Compilazione: traduce l’intero programma prima di eseguirlo (pro: più veloce, eseguibile ovunque. Contro: tradotto in linguaggio intermedio, tutto su ram), interpretazione: traduce riga per riga mentre esegue (più lento nel complesso, ma è più graduale). PYTHON è interpretato (una riga per volta), interattivo (interfaccia dove posso dare un comando ed avere subito la risposta), orientato agli oggetti (mi conviene creare oggetti virtuali che hanno caratteristiche, possono compiere azioni e a cui posso cambiare le caratteristiche=non riscrivo tutto da capo ogni volta), è molto semplice ed open source (l’ha usato google). Per cosa si usa? Un sacco di cose. Shell lo uso quando devo eseguire il programma, quando lo scrivo uso editor (apro idle, mi da direttamente la shell, per passare all’editor file, new file e sono nell’editor). Salvare la shell serve solo per tener traccia di quello che ho fatto (es. errori che mi voglio ricordare). OPERAZIONI: Simbolo Operazione Descrizione

  • Addizione Somma due numeri
  • Sottrazione Sottrae due numeri
  • Moltiplicazione Moltiplica due numeri / Divisione Divide due numeri e restituisce il risultato come numero in virgola mobile // Divisione intera Divide due numeri e restituisce il risultato come intero (*) senza resto % Modulo (resto) Divide un numero intero per un altro e restituisce il resto della divisione ** Esponente Eleva un numero a una potenza esegue prima esponenti, poi moltiplicazione e divisione e infine somma e differenza (ma comunque rispetta le parentesi). NB. 9<> da 9.0 , sono tipi di dato diverso

LEZIONE 10 (basics)

Obiettivi della lezione

  • Inserire le prime istruzioni in Python
  • Comprendere l’uso delle variabili e i diversi tipi di dati • Creare il primo programma Parentesi: si usano le tonde annidate per le espressioni

NB. No virgola ma punto! (anglosassone) perché virgola è separatore dei valori ,al posto delle virgolette uso l’apostrofo, quasi mai separatore migliaia, è solo abbellimento inutile che non mettiamo perché è pure complicato da fare, spazi il python sono ininfluenti tra gli elementi di sintassi FUNZIONI  Help: mi aiuta come se fosse una finestra d’inserimento, mi aiuta con la sintassi quando non la so scrivere a mano (funziona nella shell, non nell’editor)  Print: mostrare a schermo qualcosa, mi da un output visibile direttamente nella shell. NB. Posso fare calcoli nel print. In print sep=’ ‘ serve a separare i vari valori che ho messo nella funzione con un separatore di testo (lo metto tra apostrofi) NB. Colori: viola per le funzioni (built in) quindi mi aiuta visivamente a capire cosa sto facendo, verde per le stringhe, blu per output, rosso per errori, quando apro parentesi mi da suggerimento su argomenti funzioni) NB. Nella shell NON si può cancellare, perché è una specie di chat interattiva, quindi per azzerare quello che ho fatto devo solo chiudere e aprire un nuovo file (importante: noi lavoriamo nell’editor, lì posso cancellare senza problemi, poi copio e incollo nella shell per verificare e quando l’ho fatto chiudo shell quindi non mi importa se non si può cancellare). Esiste una libreria standard di python ed è installata direttamente con python, altre librerie se mi servono le importo per poter usare delle funzioni che non ci sono nella libreria standard. Es. funzione sqrt (radice) NON c’è nella libreria standard. Come importo? Import nome_libreria e poi per usarle devo mettere prima nome_libreria es. import math, math.sqrt Stringhe: apostrofi o virgolette? Dipende. Se nella frase ho un apostrofo (es. t’amo) metto le virgolette, altrimenti pensa che la frase sia finita all’apostrofo! (quindi: “t’amo” e non ‘T’amo’). In casi particolari si usano i tripli apici (‘’’), ma casi MOLTO particolari. Operazioni sulle stringhe: concatenamento (+), ripetizione (*n) NB. Messaggi d’errore sono importanti! Spesso mi spiegano dove sta l’errore Codici di escape: backslash () e altri caratteri all’interno di una stringa, danno comandi specifici e non si vedono in output. Es. \n serve per mandare a capo, \t allinea la tabulazione, \ manda a capo il codice NB. Codici di escape vanno messi DENTRO la stringa, quindi (‘uno\ndue\ntre’) e NON (‘uno’
n’due’\n’tre’). Commentare il codice: si commenta con carattere # Le variabili: nome che rappresenta un valore nella memoria del computer, la creo con l’istruzione di assegnazione(=). Es. cognome=’Rossi’ NB. Posso cambiare il valore della variabile, posso dare valori diversi alla stessa variabile MA me lo sostituisce, me lo devo ricordare. Come istruzione di assegnazione? Nb va da dx verso sx (quindi si var1=’ciao’ e NO ‘ciao’=var3), attenzione!! Devo scrivere sempre uguale altrimenti non me la riconosce, posso aggiornare la variabile es. varx=10 e varx=varx+1 (ma prima DEVO creare la variabile di partenza, non me la crea al volo deve essere già definita).

Es. Operatori di confronto Il confronto può includere valori (interi, float, stringhe ecc.) oppure variabili, o funzioni. Operatore Descrizione Esempi == Uguale a 4 == 4 -> True 4 == 73 -> False != Diverso da 4 != 73 -> True 4 != 4 -> False

Maggiore di 73 > 4 -> True 4 > 73 -> False = Maggiore o uguale a 73 >= 4 -> True 4 >= 4 -> True < Minore di 4 < 73 -> True 73 < 4 -> False <= Minore o uguale a 4 <= 73 -> True 4 <= 4 -> True IF-ELSE: L’istruzione if-else permette di scrivere una struttura decisionale ad alternativa doppia, che prevede due possibili percorsi di esecuzione (ramificazioni), a seconda che la condizione sia vera o falsa. Es. Condizioni nidificate: si ma anche no, non viene molto usato. Es. per tre condizioni ci vogliono due if e due else (logica come excel). Se condizioni in serie meglio usare ELIF, che consente di specificare un’istruzione per ciascuno dei casi possibili (NB. Dopo una serie di elif è possibile concludere con un’istruzione else, se vi sono casi residui, ma non è obbligatorio). Es. if condizione1: istruzioni elif condizione2: istruzioni ... elif condizioneN: istruzioni else: istruzioni [altre linee del codice] Chiamati anche operatori booleani, consentono di creare espressioni booleane complesse, aumentando le potenzialità dei costrutti condizionali:

Operatore Descrizione and Restituisce True se tutti gli argomenti sono veri, altrimenti restituisce False or Restituisce True se almeno uno degli argomenti è vero, altrimenti restituisce False not Restituisce True se l’argomento è falso, restituisce False se l’argomento è vero Es. Espressione Significato x > y and a < b x è maggiore di y E contemporaneamente a è minore di b? (True o False) x == y or x == z x è uguale a y O x è uguale a z? (True o False) not (x > y) L’espressione x > y è falsa? (True o False) NB. Test di IF può essere con un elenco di valori (?la risposta sta in questo elenco?), ma come lo faccio? Con l’istruzione IN (= risoposta sta o no in questo elenco?). Es. MA vale per un elenco con stringhe di testo. Per numeri? range (start, stop [, step]), restituisce un oggetto che produce una sequenza di numeri interi, compresi tra il valore minimo start (incluso) e il valore massimo stop (escluso), con incrementi corrispondenti a step. NB. Se start omesso vale 0, se step specificato indica l’incremento. Es. if a in range(6,12): print("Il valore è OK!" ) else: print("Il valore non appartiene all'intervallo") Il valore non appartiene all'intervallo Costrutti iterativi: eseguire più volte lo stesso blocco di istruzioni. Come? Con i CICLI. NB. Due categorie di cicli: quelli con condizione WHILE e quelli con contatore FOR (continua ad eseguire finchè la condizione è VERA, continua ad eseguire per ogni numero DA X A Y). WHILE: come la scrivo? Clausola while, due punti, blocco di istruzioni indentato. NB. While si usa quando non so quanti giri farò

NB. Ciclo while può essere infinito (finchè condizione si verifica) e per questo si può usare WHILE TRUE che però ha bisogno di if e break ma non richiede la preventiva inizializzazione della variabile. LEZIONE 12 (Funzioni) Argomenti:  Imparare a creare funzioni personalizzate  Gestire le eccezioni Funzioni: svolgono un compito specifico. Come? Le creo e poi le salvo, così non devo scrivere tutte le volte le istruzioni. NB. 2 componenti: intestazione e corpo. Intestazione ha def come parola chiave per definire funzione, poi nome che le do (regole: il primo carattere deve essere una lettera o un underscore, non si possono utilizzare parole chiave o spazi, dopo la prima lettera si possono usare lettere (maiuscole o minuscole), numeri, underscore , Python distingue tra maiuscole e minuscole), poi parametri (= quali argomenti passati alla funzione). Corpo dev’essere indentato, alla fine metto return se voglio che la funzione sia memorizzata, altrimenti risultato non salvato. LEZIONE 13 (Sequenze e dizionari) Argomenti:  Stringhe  Liste  Tuple  Dizionari Cosa sono? Contenitori (sequenze e no, ma pur sempre contenitori). Nb. TUTTE le sequenze sono iterabili (posso usare un ciclo), possono essere mutabili o immutabii, posizione ciascun valore identificata da un indice. Una stringa è una sequenza di caratteri che può contenere caratteri alfanumerici e simboli. NB sono IMMUTABILI (una volta create non si possono modificare, vanno ricreate). Una lista è una raccolta di dati (detti elementi) di qualsiasi tipo, racchiusi tra parentesi quadre e separati da virgole: es. [19, 30, 24, 28] ['Bocconi', 'IULM', 'Bicocca’] [156, 'Via Roma', 'Milano’, 3318488888, 15.36] NB. POSSONO essere nidificate, possono essere assegnate a variabili, le liste vuote si possono creare (così poi dopo la riempio).

NB. Per creare una lista posso anche usare la funzione built in list: Una tupla è una sequenza molto simile a una lista. Gli elementi di una tupla possono essere di qualsiasi tipo, sono separati da virgole e comunemente racchiusi tra parentesi tonde (sebbene l’uso di parentesi non sia necessario):

t = ('b', 'o', 'c', 'c', 'o', 'n', 'i’) NB. C’è la funzione tupla L’indicizzazione (indexing) consente di accedere ai singoli elementi di una sequenza, utilizzando la seguente sintassi: sequenza[indice]. NB. È possibile utilizzare indici con valori negativi: in questo caso il conteggio parte dalla fine della sequenza: Un segmento o porzione di sequenza è chiamato slice. Lo slicing consente di selezionare più di un elemento di una sequenza utilizzando la sintassi: sequenza[indice_iniziale:indice_finale:step]. L'operazione restituisce tutti gli elementi della sequenza tra quello con indice_iniziale (compreso) e quello con indice_finale (escluso). Step è opzionale e indica quali indici successivi selezionare dopo il primo. Stringhe, liste e tuple hanno delle funzioni speciali, chiamate metodi. La sintassi delle funzioni prevede che la sequenza o il nome della variabile in cui è memorizzata sia uno degli argomenti

In Python un dizionario è un oggetto che contiene una collezione di dati o elementi