






Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
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
1 / 10
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







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
Obiettivi della lezione
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