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

  • View
    214

  • Download
    1

Embed Size (px)

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

  • Slide 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
  • Slide 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
  • Slide 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! Listruzione 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: , , , , , .
  • Slide 4
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Dalla versione 3 di Python listruzione print richiede luso 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!)
  • Slide 5
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Calcolo dellarea 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.
  • Slide 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: 0000000000 0000000001 1111111111 Un po di ripasso: la memoria principale Programmazione in Python
  • Slide 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 allutente di inserire la base e laltezza, al fine di poter calcolare larea. Supponiamo che lutente inserisca 4 per la base e 5 per laltezza. Di conseguenza larea sar 10. Dove vengono memorizzati questi dati? Potrebbe capitare che: Allindirizzo 0000000000 sia salvato 4; Allindirizzo 0000000001 sia salvato 5; Allindirizzo 0000000010 sia salvato 10; Un po di ripasso: la memoria principale Programmazione in Python
  • Slide 8
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Problema: per il programmatore pu essere complicato dover ricordare lindirizzo specifico in cui stato salvato ciascun dato. Daltra 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.
  • Slide 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 allinterno del codice del programma; lutente non potr inserire nessuna costante. Se, invece, un dato pu essere modificato (deve essere calcolato, inserito dallutente o cambiato in corso dopera il suo valore, allora definiremo una variabile. Esempio: b per la base; h per laltezza; a per larea. Variabili e costanti Programmazione in Python
  • Slide 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 = N76000000 Tipi di variabili Programmazione in Python
  • Slide 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
  • Slide 12
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Per leggere un dato inserito dallutente in Python su utilizza listruzione 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
  • Slide 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
  • Slide 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 allIF devono essere spostate di almeno uno spazio (o carattere di tabulazione) verso destra rispetto allIF. Lo stesso vale per lELSE.
  • Slide 15
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Nellesempio precedente abbiamo valutato due condizioni: a > 0 e la sua negazione ( else ) a
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Nellesempio 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
  • Slide 17
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Unaltra 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
  • Slide 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 listruzione range(1, N+1) che permette allindice i di variare tra 1 ed N (escluso lestremo superiore N+1).
  • Slide 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.
  • Slide 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.
  • Slide 21
  • Prof. Raffaele Farina (Gruppo 1) Prof. Pasquale De Michele (Gruppo 2) Esempio: leggere i n