Programmazione&in&Python& - afs.enea.it ·...

35
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

Transcript of Programmazione&in&Python& - afs.enea.it ·...

Page 1: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  

Page 2: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  introdoGe  diverse  novità,  che  vengono  comunque  messe  in  evidenza  in  queste  slide  rispeGo  alla  versione  2.7.  

Precisazione  

Programmazione  in  Python  

Page 3: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Hello  world!:  

Primo  programma  in  Python  

Programmazione  in  Python  

print “Hello world!”

!   Aggiungere  commenN  al  codice:  

#Questo e’ un commento! print “Hello world!”

!   L’istruzione  print  può  essere  faGa  anche  in  un  altro  modo  (usando  ‘):  print ‘L\’altezza e’ mezza bellezza’

!   ATTENZIONE:  per  evitare  errori,  sia  nei  commenN,  sia  nelle  stampe,  non  usare  mai  caraGeri  accentaN  come:  !  è,  é,  à,  ù,  ò,  ì.  

Page 4: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  correGamente  in  Python  3  richiede  di  essere  scriGo  come  segue:  

print  in  Python  3  

Programmazione  in  Python  

print (“Hello world!”)

Page 5: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Calcolo  dell’area  del  triangolo  reGangolo:  

Un  programma  un  po’  più  complesso  

Programmazione  in  Python  

!   Tipi  di  istruzioni  uNlizzate:  ! print  –  per  la  stampa  a  video  (output);  !   input  –  per  la  leGura  da  video  (input);  !   a = b*h/2  –  per  assegnare  un  valore  alla  variabile  a.  

Page 6: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  tua  i  daN  che  essi  manipolano.  

!   La  memoria  RAM  è  organizzata  in  indirizzi  del  Npo:  !   0000000…000  !   0000000…001  !   …  !   1111111…111  

Un  po’  di  ripasso:  la  memoria  principale  

Programmazione  in  Python  

Page 7: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  quesN  sarà  associato  ad  un  indirizzo.  

!   Riprendiamo  il  programma  del  triangolo  reGangolo.  !   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  memorizzaN  quesN  daN?  !   Potrebbe  capitare  che:  

•  All’indirizzo  0000000…000  sia  salvato  4;  •  All’indirizzo  0000000…001  sia  salvato  5;  •  All’indirizzo  0000000…010  sia  salvato  10;  

Un  po’  di  ripasso:  la  memoria  principale  

Programmazione  in  Python  

Page 8: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  tua  i  giorni  possiamo  trovare  esempi  che  semplificano  questa  problemaNca:  !   La  rubrica  telefonica.  

Variabili  e  costanN  

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.

Page 9: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  costanN  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  costanN  

Programmazione  in  Python  

Page 10: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Le  variabili  possono  essere  di  vario  Npo.  

!   Possiamo  disNnguere  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  caraGeri  alfa-­‐numerici)  

•  c = “N76000000”

Tipi  di  variabili  

Programmazione  in  Python  

Page 11: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  Npo  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  

Page 12: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Per  leggere  un  dato  inserito  dall’utente  in  Python  su  uNlizza  l’istruzione  input().  

!   Esempio:  a = input(“Inserire a”) !   In  Python  2.7,  tale  istruzione  assegna  alla  variabile  il  Npo  inserito:  

!   Se  si  inserisce  “3”,  allora  a  è  di  Npo  intero.  !   Se  si  inserisce  “3.0”,  allora  a  è  di  Npo  reale.  !   Se  si  inserisce  “Ciao”,  allora  a  è  di  Npo  stringa.  

!   In  Python  3.4,  tale  istruzione  assegna  alla  variabile  sempre  il  Npo  stringa.  Di  conseguenza  è  necessaria  una  conversione,  affinché  si  possa  gesNre  il  Npo  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  uNle  anche  in  Python  2.7,  quando  si  desidera  che  le  variabili  siano  sempre  dello  stesso  Npo,  ad  esempio  reale.  Di  conseguenza,  anche  se  si  inserisse  “3”,  con  la  conversione,  la  variabile  a  diventerebbe  di  Npo  reale.  

LeGura  con  input()  in  Python  2.7  e  3.4  

Programmazione  in  Python  

Page 13: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Talvolta  può  essere  uNle  valutare  il  contenuto  di  una  o  più  variabili  al  fine  di  poter  stabilire  quale  sequenza  di  istruzioni  svolgere  a  seconda  dei  casi.  

CostruGo  condizionale  (di  selezione)  IF  -­‐  ELSE  

Programmazione  in  Python  

Page 14: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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.  

CostruGo  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  caraGere  di  tabulazione)  verso  destra  rispeGo  all’IF.  

!   Lo  stesso  vale  per  l’ELSE.  

Page 15: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  gesNre  più  di  due  condizioni  da  controllare?    !   Consideriamo  un  altro  esempio:  

!   Vogliamo  valutare  se  il  valore  contenuto  nella  variabile  a  sia  maggiore,  minore  o  uguale  rispeGo  a  0  (3  condizioni).  

 

CostruGo  condizionale  (di  selezione)  IF  -­‐  ELSE  

Programmazione  in  Python  

Page 16: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  precedenN.  

CostruGo  condizionale  (di  selezione)  IF  -­‐  ELSE  

Programmazione  in  Python  

Page 17: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Un’altra  situazione  Npica  per  un  programmatore  è  avere  a  che  fare  con  istruzioni  che  si  ripetono  più  volte.  

!   In  questo  caso  possiamo  uNlizzare  due  costrua  che  ci  permeGono  di  ripetere  una  sequenza  di  istruzioni  per  un  certo  numero  fissato  di  volte  o  finché  risulta  vera  una  certa  condizione.  

Costrua  iteraNvi  FOR  e  WHILE  

Programmazione  in  Python  

Page 18: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Un  esempio  del  costruGo  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  aGraverso  l’istruzione  range(1, N+1)  che  permeGe  all’indice  i  di  variare  tra  1  ed  N  (escluso  l’estremo  superiore  N+1).  

Page 19: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  caraGere  di  tabulazione)  verso  destra  rispeGo  al  FOR.  !   TuGo  ciò  che  viene  scriGo  “allineato”  col  FOR  (o  verso  sinistra)  viene  

considerato  non  appartenente  al  ciclo  FOR.  

Page 20: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Un  esempio  del  costruGo  WHILE  in  Python:  

Il  ciclo  WHILE  

Programmazione  in  Python  

!   In  questo  caso  abbiamo  un  gruppo  di  istruzioni  che  deve  essere  ripetuto  finché  risulta  soddisfaGa  una  certa  condizione.  

!   Di  conseguenza,  non  sappiamo  precisamente  quante  volte  dovremo  ripetere  la  sequenza  di  istruzioni  contenuta  nel  ciclo  WHILE.  

Page 21: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Esempio:  leggere  i  numeri  inseriN  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.  

Page 22: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   D’altra  parte,  ciò  che  può  essere  faGo  con  un  ciclo  FOR  può  essere  tranquillamente  faGo  con  un  ciclo  WHILE.  

!   Di  conseguenza  consideriamo  il  precedente  programma  scriGo  per  il  ciclo  FOR  e  vediamo  come  implementarlo  con  il  ciclo  WHILE.  

Il  ciclo  WHILE  

Programmazione  in  Python  

Page 23: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  

Page 24: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!  Sia  il  costruGo  IF,  sia  i  costrua  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  parNcolare,  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  uNlizza  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  uNlizzare  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  

Page 25: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Vogliamo  scrivere  un  programma  che  legga  5  variabili  di  Npo  intero  e  ne  resNtuisca  la  sommatoria.  Inoltre  se  la  sommatoria  è  pari  le  variabili  pari  inizialmente  inserite  devono  essere  poste  a  0.  

 !   In  questo  caso  è  necessario  memorizzare  tua  i  daN  inseriN.  

GesNre  più  variabili  dello  stesso  Npo:  array  

Programmazione  in  Python  

Page 26: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Prima  soluzione:  usare  5  variabili  diverse.  

GesNre  più  variabili  dello  stesso  Npo:  array  

Programmazione  in  Python  

Page 27: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Seconda  soluzione  (migliore):  usare  1  array  di  5  elemenN.  

GesNre  più  variabili  dello  stesso  Npo:  array  

Programmazione  in  Python  

Page 28: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Esistono  vari  modi  per  inizializzare  un  array  in  Python,  tua  validi.  

!   Inizializziamo  a  0  tre  array  n1,  n2  ed  n3  da  15  elemenN:  !   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  

Page 29: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   L’ulNma  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  parN  di  programmi  già  scriGe  che  prendono  in  input  dei  parametri  per  resNtuire  un  risultato.  

!   Le  librerie  contengono  funzioni  già  scriGe  che  semplificano  la  vita  del  programmatore.  

!   Esempi  di  librerie  Python  oltre  a  numpy:  ! math  è  la  libreria  delle  funzioni  matemaNche:  

•  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  

Page 30: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

! Python  2.7  per  Mac:  ! numpy:  Link  ! matplotlib:  Link  

! Python  2.7  per  Windows  64  bit  ! numpy:  Link  ! matplotlib:  Link  

! Python  2.7  per  Windows  32  bit  ! numpy:  Link  ! matplotlib:  Link  

Scaricare  librerie  per  Python  2.7  e  3.4  

Programmazione  in  Python  

! Python  3.4  per  Mac:  ! numpy:  Link  ! matplotlib:  Link  

! Python  3.4  per  Windows  64  bit  ! numpy:  Link  ! matplotlib:  Link  

! Python  3.4  per  Windows  32  bit  ! numpy:  Link  ! matplotlib:  Link  

Page 31: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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.  AGendere  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.  AGendere  la  fine  dell’installazione.    

Installare  la  libreria  numpy

Programmazione  in  Python  

Page 32: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

•  Per  utenN  Windows,  seguire  l’installazione  grafica.  •  Per  utenN  Mac,  dopo  aver  scaricato  il  file  matplotlib  relaNvo  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-1.4.2-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_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-1.4.2-cp33-cp33m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (premi  INVIO).

Installare  la  libreria  matplotlib  

Programmazione  in  Python  

Page 33: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Per  utenN  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.  AGendere  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.  AGendere  la  fine  dell’installazione.    

Installare  la  libreria  matplotlib  

Programmazione  in  Python  

Page 34: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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  uNlizzare  la  funzione  pow()  della  liberia  math,  potremmo  scrivere  direGamente  m.pow()  anziché  math.pow().  

Importare  librerie  in  Python  

Programmazione  in  Python  

Page 35: Programmazione&in&Python& - afs.enea.it · In&Python&3.4,&tale&istruzione&assegnaallavariabile&sempre&il&Npo& stringa.&Di&conseguenzaè&necessariaunaconversione,&affinché&si& possagesNre&il&Npo&di&variabile&

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

!   Supponiamo  di  voler  rappresentare  graficamente  (in  un  sistema  di  assi  cartesiani)  i  valori  contenuN  in  un  array  a  di  N  elemenN.  

!   Immaginiamo  che  i  valori  contenuN  nell’array  siano  quelli  relaNvi  all’asse  y  ed  i  valori  che  indicano  le  posizioni  in  cui  si  trovano  tali  valori  (da  0  ad  N-­‐1)  siano  relaNvi  all’asse  x.  

Grafici  in  Python  

Programmazione  in  Python