Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Data mining 04-funzionicustom-classioggetti
1. Corso Python e R per Data Mining
giugno - luglio 2017
Custom function
2. Funzioni
Una funzione è un blocco di istruzioni isolate dal resto del
programma che accetta come input uno o più parametri e
restituisce un output, ottenuto dall’esecuzione delle
istruzioni
Programma
Blocco di
istruzioni
INPUT OUTPUT
5. Funzioni: parametri e argomenti
def NomeFunzione(P1, P2...) :
…………….
return O1, O2,..... OM
Dichiarazione
PARAMETRI
R1= NomeFunzione(‘tt’, 24 ..)
Chiamata
ARGOMENTI
le variabili di assegnazione possono essere una oppure
tante quante sono i valori passati dall’istruzione return. Se
il numero è uguale, allora alle variabili sono assegnati i
diversi valori secondo una logica posizionale. Altrimenti
alla variabile di assegnazione è assegnata una tupla
contenente la sequenza dei risultati.
Argomenti assegnati
per posizione
6. Funzioni: parametri predefiniti e argomenti chiave
def NomeFunzione(P1, P2, P3=25, P4=’Italia’ ) :
………..
return O1, O2,..... OM
Dichiarazione
R1= NomeFunzione(‘tt’, 24, P3=60)
Chiamata
In fase di chiamata non è
necessario passare gli argomenti
corrispondenti ai parametri
predefiniti. In caso di assenza di
argomento essi assumono il
valore di default. Si può chiamare
una funzione modificando il valore
di uno o più parametri predefiniti
7. Funzioni: argomenti a lunghezza variabile
def NomeFunz.(*L) :
……..
Dichiarazione
R1= NomeFunz.(10,20)
Chiamata
R1= NomeFunz.(10,20,30)
R1= NomeFunz.(10,20,......123)
def NomeFunz.(**D) :
……..
Dichiarazione
R1= NomeFunz.(A=10)
Chiamata
R1= NomeFunz.(A=10,B=20)
9. Funzioni ricorsive
E’ possibile scrivere la chiamata di una funzione all’interno di se stessa
def Indietro(N):
if N == 0: return
print(N)
Indietro(N-1)
Questa funzione chiama
se stessa con un
argomento
decrementato
progressivamente di
uno
def Fattoriale(n):
if n == 0:
#print('n è uguale a 0')
return 1
else:
R=n * Fattoriale(n-1)
#print(n,R)
return R
Funzione
call 1
call 2
call n
return 2
return 1
return n
Questa funzione chiama recorsivamente se
stessa fino a che N è uguale a zero. Quindi
assegna ricorsivamente il valore R alla
chiamante
10. Corso Python e R per Data Mining giu-lug 2017
PYTHON BASE
Classi e oggetti
13. Programmazione ad oggetti
Programmare ad oggetti significa disegnare le diverse
classi, definendo i loro attributi e i loro metodi. Quindi
utilizzare le classi per istanziare gli oggetti desiderati.
Una volta instanziati, gli oggetti avranno vita propria. In
particolare potranno essere modificati in modo dinamico i
loro attributi.
14. Attributi e metodi
Gli strumenti/documenti contenuti nella cassetta/schedario
possono essere di due tipi:
Gli attributi sono dei dati
(informazioni) che può essere
utile tenere nella
cassetta/schedario
ATTRIBUTI METODI
I metodi sono gli strumenti con i quali
si possono compiere delle azioni. I
metodi possono essere considerati
delle funzioni utili per il dato contesto
in cui è utilizzata la cassetta/schedario.
15. Classi e oggetti: un esempio
Classe Oggetto
class AnnualTS:
'''La Classe AnnualTS serve ad istanziare un oggetto
per la gestione/descrizione di una serie storica.
'''
def __init__(BASE, START, END, DATA):
BASE.LYEAR = [I for I in range(START,END+1)]
BASE.DATA = DATA
BASE.TS= dict(zip(BASE.LYEAR,BASE.DATA))
def __str__(BASE):
STR=""
for YEAR in BASE.LYEAR:
STR=STR+'Anno {0}: {1} n'.format(
YEAR,BASE.TS[YEAR])
return STR
TS1=AnnualTS(2000, 2005, [22,33,42,34,28,33])
TS1.TS
print(TS1)
16. Classi ed oggetti: un esempio
def mean(BASE):
SUM=0
LNUM=0
for YEAR in BASE.LYEAR:
SUM=SUM+BASE.TS[YEAR]
LNUM +=1
RIS=1.0*SUM/LNUM
return RIS
def max(BASE):
MAX=0
for YEAR in BASE.LYEAR:
if BASE.TS[YEAR]>MAX:
MAX=BASE.TS[YEAR]
return MAX
Classe Oggetto
TS1.mean()
TS1.max()