La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Programmazione in Python Prof. Pasquale De Michele (Gruppo 1) Prof. Raffaele Farina.

Presentazioni simili


Presentazione sul tema: "Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Programmazione in Python Prof. Pasquale De Michele (Gruppo 1) Prof. Raffaele Farina."— Transcript della presentazione:

1 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Programmazione in Python Prof. Pasquale De Michele (Gruppo 1) Prof. Raffaele Farina (Gruppo 2) Programmazione in Python

2 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Le slide fanno riferimento alla versione di Python 2.7. Da Python 3 in poi, sono state introdotte diverse novità, che vengono comunque messe in evidenza in queste slide rispetto alla versione 2.7. Precisazione Programmazione in Python

3 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Hello world!: Primo programma in Python Programmazione in Python print “Hello world!” Aggiungere commenti al codice: #Questo e’ un commento! print “Hello world!” L’istruzione print può essere fatta anche in un altro modo (usando ‘): print ‘L\’altezza e’ mezza bellezza’ ATTENZIONE: per evitare errori, sia nei commenti, sia nelle stampe, non usare mai caratteri accentati come: è, é, à, ù, ò, ì.

4 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Dalla versione 3 di Python l’istruzione print richiede l’uso delle parentesi tonde. Di conseguenza, il programma visto nella precedente slide, per essere eseguito correttamente in Python 3 richiede di essere scritto come segue: print in Python 3 Programmazione in Python print (“Hello world!”)

5 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Calcolo dell’area del triangolo rettangolo: Un programma un po’ più complesso Programmazione in Python Tipi di istruzioni utilizzate: print – per la stampa a video (output); input – per la lettura da video (input); a = b*h/2 – per assegnare un valore alla variabile a.

6 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) I programmi, quando sono in esecuzione, risiedono nella memoria principale (RAM). Insieme ai programmi, nella memoria principale risiedono anche tutti i dati che essi manipolano. La memoria RAM è organizzata in indirizzi del tipo: … …001 … …111 Un po’ di ripasso: la memoria principale Programmazione in Python

7 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Di conseguenza, possiamo immaginare che se un programma chiede ad un utente di inserire due numeri per poterne calcolare un terzo, ognuno di questi sarà associato ad un indirizzo. Riprendiamo il programma del triangolo rettangolo. Il programma chiede all’utente di inserire la base e l’altezza, al fine di poter calcolare l’area. Supponiamo che l’utente inserisca 4 per la base e 5 per l’altezza. Di conseguenza l’area sarà 10. Dove vengono memorizzati questi dati? Potrebbe capitare che: All’indirizzo …000 sia salvato 4; All’indirizzo …001 sia salvato 5; All’indirizzo …010 sia salvato 10; Un po’ di ripasso: la memoria principale Programmazione in Python

8 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Problema: per il programmatore può essere complicato dover ricordare l’indirizzo specifico in cui è stato salvato ciascun dato. D’altra parte, nella vita di tutti i giorni possiamo trovare esempi che semplificano questa problematica: La rubrica telefonica. Variabili e costanti Programmazione in Python La rubrica telefonica mantiene le associazioni tra numeri di telefono e i nomi delle persone a cui tali numeri di telefono corrispondono. Allo stesso modo, possiamo pensare di associare un nome a ciascun dato utilizzato nel programma. A seconda del fatto che questi dati possano o meno essere modificati, distingueremo variabili e costanti.

9 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Se un dato non deve mai essere modificato (il valore ad esso associato non cambia), allora definiremo una costante. Esempio: PI_GRECO = 3.14 N.B.: le costanti possono essere definite solo dal programmatore all’interno del codice del programma; l’utente non potrà inserire nessuna costante. Se, invece, un dato può essere modificato (deve essere calcolato, inserito dall’utente o cambiato in corso d’opera il suo valore, allora definiremo una variabile. Esempio: b per la base; h per l’altezza; a per l’area. Variabili e costanti Programmazione in Python

10 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Le variabili possono essere di vario tipo. Possiamo distinguere tra variabili semplici e variabili complesse. Le variabili semplici sono messe a disposizione dal linguaggio di programmazione. Nel caso del Python sono: Variabili intere (che possono contenere numeri interi): a = -3 Variabili reali (che possono contenere numeri reali): b = -7.4 Variabili stringhe (sequenze di caratteri alfa-numerici) c = “N ” Tipi di variabili Programmazione in Python

11 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Un esempio di variabili complesse sono gli array. Un array raggruppa, mediante un unico nome, un insieme omogeneo (dello stesso tipo di variabili). Esempio: a = [1, 2, 3, 4] Per accedere ad un singolo dato contenuto in un array si fa riferimento alla sua posizione (partendo dalla prima posizione 0). Di conseguenza: In a[0] avremo 1. In a[1] avremo 2. In a[2] avremo 3. In a[3] avremo 4. Tipi di variabili Programmazione in Python

12 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Per leggere un dato inserito dall’utente in Python su utilizza l’istruzione input(). Esempio: a = input(“Inserire a”) In Python 2.7, tale istruzione assegna alla variabile il tipo inserito: Se si inserisce “3”, allora a è di tipo intero. Se si inserisce “3.0”, allora a è di tipo reale. Se si inserisce “Ciao”, allora a è di tipo stringa. In Python 3.4, tale istruzione assegna alla variabile sempre il tipo stringa. Di conseguenza è necessaria una conversione, affinché si possa gestire il tipo di variabile desiderata: Se si desidera un intero, aggiungere a = int(a) Se si desidera un reale, aggiungere a = float(a) La cosa può essere utile anche in Python 2.7, quando si desidera che le variabili siano sempre dello stesso tipo, ad esempio reale. Di conseguenza, anche se si inserisse “3”, con la conversione, la variabile a diventerebbe di tipo reale. Lettura con input() in Python 2.7 e 3.4 Programmazione in Python

13 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Talvolta può essere utile valutare il contenuto di una o più variabili al fine di poter stabilire quale sequenza di istruzioni svolgere a seconda dei casi. Costrutto condizionale (di selezione) IF - ELSE Programmazione in Python

14 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Vediamo un esempio concreto: Vogliamo valutare se il valore contenuto nella variabile a sia maggiore di 0 oppure no. Costrutto condizionale (di selezione) IF - ELSE Programmazione in Python ATTENZIONE – Regole di indentazione: Le istruzioni interne all’IF devono essere spostate di almeno uno spazio (o carattere di tabulazione) verso destra rispetto all’IF. Lo stesso vale per l’ELSE.

15 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Nell’esempio precedente abbiamo valutato due condizioni: a > 0 e la sua negazione ( else ) a <= 0. Come potremmo gestire più di due condizioni da controllare? Consideriamo un altro esempio: Vogliamo valutare se il valore contenuto nella variabile a sia maggiore, minore o uguale rispetto a 0 (3 condizioni). Costrutto condizionale (di selezione) IF - ELSE Programmazione in Python

16 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Nell’esempio precedente abbiamo valutato tre condizioni: a > 0 ( if ) a < 0 ( elif ) a = 0 ( else ) come negazione delle due precedenti. Costrutto condizionale (di selezione) IF - ELSE Programmazione in Python

17 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Un’altra situazione tipica per un programmatore è avere a che fare con istruzioni che si ripetono più volte. In questo caso possiamo utilizzare due costrutti che ci permettono di ripetere una sequenza di istruzioni per un certo numero fissato di volte o finché risulta vera una certa condizione. Costrutti iterativi FOR e WHILE Programmazione in Python

18 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Un esempio del costrutto FOR in Python: Il ciclo FOR Programmazione in Python In questo caso abbiamo un gruppo di istruzioni che deve essere ripetuto N = 10 volte. Di conseguenza abbiamo fissato intervallo [1, 10] in cui variare. Tale intervallo viene espresso attraverso l’istruzione range(1, N+1) che permette all’indice i di variare tra 1 ed N (escluso l’estremo superiore N+1).

19 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Esempio: leggere 10 numeri e per ogni numero inserito stamparne il doppio. Il ciclo FOR Programmazione in Python ATTENZIONE – Regole di indentazione: Le istruzioni interne al FOR devono essere spostate di almeno uno spazio (o carattere di tabulazione) verso destra rispetto al FOR. Tutto ciò che viene scritto “allineato” col FOR (o verso sinistra) viene considerato non appartenente al ciclo FOR.

20 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Un esempio del costrutto WHILE in Python: Il ciclo WHILE Programmazione in Python In questo caso abbiamo un gruppo di istruzioni che deve essere ripetuto finché risulta soddisfatta una certa condizione. Di conseguenza, non sappiamo precisamente quante volte dovremo ripetere la sequenza di istruzioni contenuta nel ciclo WHILE.

21 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Esempio: leggere i numeri inseriti dall’utente finché non viene inserito il numero 0. Il ciclo WHILE Programmazione in Python ATTENZIONE – Regole di indentazione: Valgono le stesse regole di indentazione del ciclo FOR.

22 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) D’altra parte, ciò che può essere fatto con un ciclo FOR può essere tranquillamente fatto con un ciclo WHILE. Di conseguenza consideriamo il precedente programma scritto per il ciclo FOR e vediamo come implementarlo con il ciclo WHILE. Il ciclo WHILE Programmazione in Python

23 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Consideriamo un esempio leggermente diverso: leggere 10 numeri e per ogni numero inserito stamparne il doppio; se l’utente inserisce il numero 0 il programma termina prima. Il ciclo WHILE Programmazione in Python

24 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Sia il costrutto IF, sia i costrutti FOR e WHILE valutano delle condizioni che possono essere VERE o FALSE. Di conseguenza ci si rifà alla logica booleana per stabilire se una o più condizioni sono vere o false. In particolare, nel caso dell’IF e del WHILE può capitare che debbano essere valutate più condizioni contemporaneamente che possono quindi essere combinate in AND ed OR logici. Come si è già visto per l’esempio precedente, Python utilizza l’espressione c1 and c2 per valutare due condizioni in AND. Di conseguenza è facile immaginare che per l’OR logico l’espressione sarà c1 or c2. Per combinazioni più complesse è possibile utilizzare le parentesi tonde al fine di stabilire l’ordine di valutazione. Esempio: (c1 or c2) and (c3 or c4) Valutazione delle condizioni Programmazione in Python

25 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Vogliamo scrivere un programma che legga 5 variabili di tipo intero e ne restituisca la sommatoria. Inoltre se la sommatoria è pari le variabili pari inizialmente inserite devono essere poste a 0. In questo caso è necessario memorizzare tutti i dati inseriti. Gestire più variabili dello stesso tipo: array Programmazione in Python

26 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Prima soluzione: usare 5 variabili diverse. Gestire più variabili dello stesso tipo: array Programmazione in Python

27 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Seconda soluzione (migliore): usare 1 array di 5 elementi. Gestire più variabili dello stesso tipo: array Programmazione in Python

28 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Esistono vari modi per inizializzare un array in Python, tutti validi. Inizializziamo a 0 tre array n1, n2 ed n3 da 15 elementi: n1 = [0] * 15 #Come nell’esempio appena visto n2 = [0 for i in range(15)] import numpy as np n3 = np.zeros(15) Array: inizializzazione Programmazione in Python

29 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) L’ultima modalità di inizializzazione di un array ricorre ad una funzione ( zeros() ) definita nella libreria numpy di Python. La libreria numpy richiede di essere scaricata. Le funzioni possono essere viste come parti di programmi già scritte che prendono in input dei parametri per restituire un risultato. Le librerie contengono funzioni già scritte che semplificano la vita del programmatore. Esempi di librerie Python oltre a numpy : math è la libreria delle funzioni matematiche: a = math.pow(b, e) : la funzione potenza ( pow() ) assegna ad a il risultato dell’elevamento alla potenza e della base b. y = math.sqrt(x) : la funzione radice quadrata ( sqrt() ) assegna a y il risultato della radice quadrata di x. matplotlib.pyplot è una libreria per la creazione dei grafici. Librerie e funzioni Programmazione in Python

30 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Python 2.7 per Mac: numpy : LinkLink matplotlib : LinkLink Python 2.7 per Windows 64 bit numpy : LinkLink matplotlib : LinkLink Python 2.7 per Windows 32 bit numpy : LinkLink matplotlib : LinkLink Scaricare librerie per Python 2.7 e 3.4 Programmazione in Python Python 3.4 per Mac: numpy : LinkLink matplotlib : LinkLink Python 3.4 per Windows 64 bit numpy : LinkLink matplotlib : LinkLink Python 3.4 per Windows 32 bit numpy : LinkLink matplotlib : LinkLink

31 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Per Mac e Windows, seguire l’installazione grafica. Per Linux con distribuzioni Debian/Ubuntu: 1.Aprire il terminale e digitare sudo apt-get install python-numpy (premi INVIO) 2.Inserire la password (non compaiono pallini ma state scrivendo ugualmente), premere INVIO. 3.Attendere la fine dell’installazione. con distribuzioni Fedora/RedHat: 1.Aprire il terminale e digitare sudo yum install python-numpy (premi INVIO) 2.Inserire la password (non compaiono pallini ma state scrivendo ugualmente), premere INVIO. 3.Attendere la fine dell’installazione. Installare la libreria numpy Programmazione in Python

32 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Per utenti Windows, seguire l’installazione grafica. Per utenti Mac, dopo aver scaricato il file matplotlib relativo alla vostra versione di Python: 1. Aprire il terminale e digitare sudo pip3 install wheel (premi INVIO). 2. Vi verrà richiesta la vostra password, quindi digitatela. 3. Finita questa installazione, spostatevi nella cartella Downloads digitando nel terminale: cd Downloads (premi INVIO) a.Per Python 2.7 digitare (vi verrà richiesta la vostra password) sudo pip3 install matplotlib cp27-none- macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x 86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (premi INVIO). b.Per Python 3.4 digitare (vi verrà richiesta la vostra password) sudo pip3 install matplotlib cp33-cp33m- macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x 86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (premi INVIO). Installare la libreria matplotlib Programmazione in Python

33 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Per utenti Linux con distribuzioni Debian/Ubuntu: 1.Aprire il terminale e digitare sudo apt-get install python-matplotlib (premi INVIO) 2.Inserire la password (non compaiono pallini ma state scrivendo ugualmente), premere INVIO. 3.Attendere la fine dell’installazione. con distribuzioni Fedora/RedHat: 1.Aprire il terminale e digitare sudo yum install python-matplotlib (premi INVIO) 2.Inserire la password (non compaiono pallini ma state scrivendo ugualmente), premere INVIO. 3.Attendere la fine dell’installazione. Installare la libreria matplotlib Programmazione in Python

34 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Per usare le funzioni definite in determinate librerie di Python è necessario importare tali librerie nel programma. La sintassi è la seguente: import nome_libreria Talvolta, per abbreviare il nome della libreria si definisce un alias tramite la parola chiava as dopo il nome della libreria, seguita dall’alias: import nome_libreria as alias Vediamo alcuni esempi: import math as m import numpy as np import matplotlib.pyplot as plt In questo modo, se volessimo utilizzare la funzione pow() della liberia math, potremmo scrivere direttamente m.pow() anziché math.pow(). Importare librerie in Python Programmazione in Python

35 Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Supponiamo di voler rappresentare graficamente (in un sistema di assi cartesiani) i valori contenuti in un array a di N elementi. Immaginiamo che i valori contenuti nell’array siano quelli relativi all’asse y ed i valori che indicano le posizioni in cui si trovano tali valori (da 0 ad N-1) siano relativi all’asse x. Grafici in Python Programmazione in Python


Scaricare ppt "Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Programmazione in Python Prof. Pasquale De Michele (Gruppo 1) Prof. Raffaele Farina."

Presentazioni simili


Annunci Google