









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 di Python tratti dalle lezioni di computer science di Maurizio De Pra in Bocconi nell'anno scolastico 2019-2020. Perfetto per corsi di laurea CLEAM, CLEF, CLEACC, BESS, BIEM, BIEF, BIG.
Tipologia: Appunti
1 / 17
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!










Un programma software è una sequenza di comandi attraverso la quale un calcolatore esegue un’elaborazione. Il calcolatore riceve degli input (da tastiera, da un file, …) e restituisce degli output (a monitor, su file, via rete, …) attraverso semplici operazioni. Un algoritmo è un processo che permette di risolvere un problema attraverso un numero finito di semplici passi. Linguaggi: Pro Contro Compilati Esecuzione più veloce Il codice viene tradotto in un linguaggio intermedio (per poterlo leggere, bisogna tornare al codice sorgente) Interamente caricato in memoria RAM ISO Standard / regole universali per esecuzione su diverse piattaforme Interpretati Esecuzione più lenta Il codice è salvato così com’è (può quindi sempre essere letto) Occupa meno spazio in memoria RAM Per ogni Sistema Operativo, ci può essere uno specifico «dialetto» Python è un linguaggio di programmazione di alto livello interpretato, interattivo, orientato agli oggetti.
// Divisione intera Divide due numeri e restituisce il risultato come intero senza resto
% Modulo (resto) Restituisce solo il resto della divisione 11%2= Espressioni matematiche: PEMDAS (Parentesi, Elevamento a potenza, Moltiplicazione, Divisione, Addizione, Sottrazione) N.B.: i numeri in Python vengono sempre espressi con la notazione anglosassone. Se sono operazioni dello stello livello si eseguono da sx verso dx, tranne l'elevamento a potenza da dx verso sx. Differenza tra 232=512 e (23)2= 64
giovedì 2 aprile 2020 16:
struttura sequenziale : un insieme di istruzioni che vengono eseguite nell’ordine in cui compaiono.
Istruzioni.. ▪ If condizione mediante booleani: ○ Struttura decisionale semplice (ad alternativa singola) - > eseguisci solo se è vera Istruzioni.. ▪ If condizione : Istruzioni… ▪ Else : Esecuzione alternativa(o ad alternativa doppia) - > eseguisci se è vera; eseguisci altro se è falsa
Istruzioni.. ▪ If condizione1 : Istruzioni.. If condizione2: Istruzioni.. Else: ▪ Else : ○ Condizioni in serie - > condizioni nidificate Istruzioni.. ▪ If condizione1: Istruzioni ▪ Elif condizione2: ○ Oppure!!! struttura decisionale : si esegue una determinata azione solo al verificarsi di condizioni specifiche (es. SE in Excel).
L’ordine in cui vengono eseguite le istruzioni di un programma dipende dallo schema logico definito, chiamato struttura. Operatori di confronto: == Uguale a 4 ==4 True; 4==73 False != Diverso da 4 !=73 True; 4!=4 False Operatori logici: and Restituisce True se tutti gli argomenti sono veri, altrimenti restituisce False x<y and x==y or Restituisce True se almeno uno degli argomenti è vero, altrimenti restituisce False x<y or x==y not Restituisce True se l’argomento è falso, restituisce False se l’argomento è vero not (x<y) If + in - > valore compreso in una lista di valori […] es. if risposta in [si, Sì, SI, yes, ..] Sintassi: range(start, stop [, step] ) If + range - > valore compreso tra un intervallo di valori range(i, j) produce: i, i+1, i+2, ..., j- 1 La funzione range 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. range(4) produce: 0, 1, 2, 3 Quando start viene omesso, il valore minimo predefinito è 0 Quando step viene specificato indica l’incremento (o decremento). Es. for x in range (5,0, - 1): print(x) ----> 5 4 3 2 1
mercoledì 8 aprile 2020 11:
Costrutti iterativi (anche cicli o loop): Si dice iterazione la capacità di eseguire ripetutamente uno stesso blocco di istruzioni. x = 1 Print(x) X = x + While x <= 10: Mettere la variabile fuori dal ciclo, e poi incrementarla/decrementarla/fare una domanda!!! Es. vogliamo vedere tutti i numeri pari da 8 a 24 sulla base di input forniti dall'utente ▪ controllati da una condizione: while aggiungere un if che contenga la condizione di uscita, e poi break while True - > se vogliamo che il ciclo venga eseguito all'infinito! ▪ quelli controllati da un contatore: for - > viene ripetuto per un numero predefinito di volte Esistono due categorie di cicli:
Funzioni personalizzate : Oltre a svolgere calcoli o compiere azioni, le funzioni sono importanti perché favoriscono la creazione di un programma modulare. Una funzione ha due componenti: intestazione e corpo. Per far eseguire una nuova funzione, bisogna chiamarla: nome_funzione()
giovedì 23 aprile 2020 15:
è accessibile solo all’interno del suo ambito (scope), cioè nella parte del programma in cui è stata definita, come per esempio una funzione
Servono per facilitare i calcoli, memorizzare temporaneamente un valore, rendere più leggibile il codice
○ All'esterno della funzione ○ può essere raggiunta da qualsiasi istruzione di un programma
La stringa di documentazione serve per inserire qualche riga di spiegazione o commento e consiste in una stringa di testo su una o più righe racchiuse tra triple virgolette, come prima istruzione subito dopo l’intestazione nella definizione di una funzione. Il contenuto della stringa di documentazione è visibile quando si legge il codice, quando si utilizza la funzione help oppure nel call tip. Esempi: Le eccezioni: Un’eccezione (exception) è un evento scatenato da un errore di varia natura: se prevediamo che si possa verificare un'eccezione, in Python è possibile scrivere del codice per gestirla (exception handling). ○ Il messaggio di errore (traceback) di solito inizia con SyntaxError
Sequenze : Le sequenze sono oggetti ("contenitori") che contengono diversi dati, memorizzati uno dopo l’altro. Esistono diversi tipi di sequenza, tra cui le stringhe, le liste e le tuple.
mercoledì 29 aprile 2020 11:
La posizione di ogni elemento all’interno di una sequenza è identificata da un numero intero, chiamato indice. L’indicizzazione consente di accedere ai singoli elementi di una sequenza , utilizzando la seguente sintassi: sequenza[indice] es. pag. Per cambiare elementi nelle liste, si può fare sequenza[indice]= nuovo elemento !!! L’indice del primo elemento a sinistra è pari a 0, mentre l’indice dell’ultimo elemento della sequenza è pari al numero di elementi della sequenza meno 1. È possibile utilizzare indici con valori negativi: in questo caso il conteggio parte dalla fine della sequenza. Lo slicing 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. Quando indice_iniziale è omesso lo slicing seleziona gli elementi a partire dal primo; quando indice_finale è omesso lo slicing seleziona gli elementi fino all’ultimo. Omettendo entrambi viene selezionata l’intera sequenza. I metodi 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 della funzione. La sintassi dei metodi prevede che sia sempre specificato anche il nome della sequenza, utilizzando la seguente sintassi: sequenza. metodo(argomenti). Metodi delle stringhe:
immutabile. E' possibile utilizzare la funzione dict , che crea un nuovo dizionario privo di elementi. nome_dizionario= {chiave1: valore1, chiave2: valore2,…} Gli elementi di un dizionario non sono memorizzati in un ordine particolare, non è quindi possibile utilizzare l’indicizzazione come nelle sequenze. Per estrarre un valore da un dizionario si utilizza la chiave associata al valore: nome_dizionario[chiave] Per aggiungere coppie chiave-valore: nome_dizionario[chiave] = valore
Le azioni che ogni variabile può fare dipendono dal tipo di dato a cui appartiene; nei linguaggi orientati agli oggetti, gli elementi che possono rappresentare un valore o eseguire azioni sono definiti come oggetti (es. variabili). Ogni tipo di variabile ha caratteristiche diverse sia nei valori che può assumere sia nelle azioni che si possono eseguire con essa; perciò tutte le variabili di un certo tipo possono eseguire le stesse azioni. L'insieme delle caratteristiche che può assumere una determinato tipo di variabile è definito una classe. Una classe, oltre a essere definita da un nome, è definita dagli attributi e dai metodi. il valore di una stringa è un suo attributo → string ha l’attributo «valore» Gli attributi sono le caratteristiche della classe: upper → è un metodo della classe string append → è un metodo della classe list I metodi sono le «azioni» che gli oggetti di una classe possono compiere: num= 125 → num è un’istanza della classe int a= "Hello World!" → a è un’istanza della classe string Riepilogando: Quando si inizializza una variabile viene creato uno specifico oggetto di una specifica classe che si definisce istanza : Oggetto : è il termine astratto utilizzato per «elementi» caratterizzati da attributi e metodi Classe : è la descrizione astratta di un oggetto. Rappresenta l'insieme di oggetti (la «famiglia») di un certo tipo. Una classe è costituita da attributi e metodi. Istanza : indica un particolare oggetto «reale» di una classe Per creare una classe è necessario assegnarle un nome e definirne i suoi attributi e/o metodi. Tutte le istanze di una classe ereditano attributi e metodi della classe a cui appartengono. class nome_classe(): Attributo Attributo … Def init(self, parametri): Metodo della classe … Def str(self): init Gli attributi consentono di personalizzare i singoli oggetti della classe; sono solitamente definiti con uno speciale metodo definito metodo costruttore. È il metodo che Python cerca nella classe quando deve creare un oggetto; può includere la definizione degli attributi e di qualsiasi altra caratteristica e opzione necessaria agli oggetti della classe.
mercoledì 6 maggio 2020 10:
Per aprire un file in Python in maniera sequenziale si utilizza la funzione open(file, mode) , che crea un oggetto file a cui viene associato lo specifico file che vogliamo aprire; dunque apre un file e restituisce un oggetto di tipo file. Se il file non può essere aperto, viene sollevato un errore. L’apertura di un file comporta la creazione di una variabile a cui associare l’oggetto. Mode: Per leggere il file: il metodo. read legge il contenuto dell’intero file;. readline() legge una sola riga, mentre .readlines ()legge tutto dal puntatore fino alla fine. Scrittura di un file di testo: \n serve per concludere una riga nel file di testo f = open("studenti.txt", "w") f.write("Anna Corti\n") f.write("Salvo Brandi\n") f.write("Nina Ferdi\n") f.close() I moduli In Python, le funzionalità aggiuntive vengono fornite tramite i moduli : si tratta di file che fungono da contenitori e raggruppano funzionalità relazionate tra loro e possono essere organizzati in librerie o «package».
Il comando import permette di importare anche più moduli contemporaneamente: N.B.: l’importazione vale solo per la sessione corrente! i. Radice quadrata a. math.sqrt(num) i. Arrotonda x per intero b. Math.ceil(x) i. Arrotonda x per difetto c. Math.floor(x) i. Eleva a potenza d. Math.pow(x)