SlideShare a Scribd company logo
1 of 16
Download to read offline
PYTHON BASE
Custom function
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
Funzioni: dichiarazione
def NomeFunzione(P1, P2,…….PN) :
Istruzione 1
Istruzione 2
…………….
Istruzione R
return O1, O2,..... OM
indentazione
INPUT
(parametri)
OUTPUT
(risultato)
Funzioni: chiamata (esecuzione)
R1, R2, … RM = NomeFunzione(A1, A2,…….AN)
INPUT
(argomenti)
OUTPUT
(assegnazione)
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
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
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)
LEZIONE 1..
www.fordatascientist.org
B00-PyBase
B53-Custom-Function
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
PYTHON BASE
Funzioni temporali
LEZIONE 1..
www.fordatascientist.org
B00-PyBase
B71-DateTime
PYTHON BASE
File di input
LEZIONE 1..
www.fordatascientist.org
B00-PyBase
B60-FileInput
CONTATTI TELEFONO
051 22 35 20
EMAIL
WORKSHOP@VICEM.IT
def returnparametri
argomenti posizionali *list
argomenti di parola
chiave
**dict
datetime.datetime
pandas.Timestamp
istanti temporali
.is_year_end
pandas.Period .freq .period_range
periodi

More Related Content

What's hot

Python - Primi passi
Python - Primi passi Python - Primi passi
Python - Primi passi orestJump
 
07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioniMajong DevJfu
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneSergio Porcu
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiSergio Porcu
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2Majong DevJfu
 
12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatori12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatoriMajong DevJfu
 
Algoritmi E Strutture Dati Pile
Algoritmi E Strutture Dati   PileAlgoritmi E Strutture Dati   Pile
Algoritmi E Strutture Dati PileAlartzero
 
Let's give it a GO!
Let's give it a GO!Let's give it a GO!
Let's give it a GO!MarioTraetta
 
Presentazione corretta algoritmi
Presentazione corretta algoritmiPresentazione corretta algoritmi
Presentazione corretta algoritmimattuzzi
 

What's hot (12)

Python - Primi passi
Python - Primi passi Python - Primi passi
Python - Primi passi
 
Flow chart
Flow chartFlow chart
Flow chart
 
07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatori12 - Programmazione: Array dinamici e puntatori
12 - Programmazione: Array dinamici e puntatori
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Algoritmi E Strutture Dati Pile
Algoritmi E Strutture Dati   PileAlgoritmi E Strutture Dati   Pile
Algoritmi E Strutture Dati Pile
 
Let's give it a GO!
Let's give it a GO!Let's give it a GO!
Let's give it a GO!
 
Presentazione corretta algoritmi
Presentazione corretta algoritmiPresentazione corretta algoritmi
Presentazione corretta algoritmi
 

Viewers also liked

Numpy + Pandas: Corso Python avanzato - ForDataScientist 01
Numpy + Pandas: Corso Python avanzato - ForDataScientist 01Numpy + Pandas: Corso Python avanzato - ForDataScientist 01
Numpy + Pandas: Corso Python avanzato - ForDataScientist 01Studiabo
 
ForDataScientist - Python advanced data
ForDataScientist - Python advanced dataForDataScientist - Python advanced data
ForDataScientist - Python advanced dataAnnalisa Vignoli
 
WEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie webWEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie webAnnalisa Vignoli
 
Web base - CSS e selettori
Web base - CSS e selettoriWeb base - CSS e selettori
Web base - CSS e selettoriAnnalisa Vignoli
 
Web base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di baseWeb base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di baseAnnalisa Vignoli
 
ForDataScientist - Python matplotlib
ForDataScientist - Python matplotlibForDataScientist - Python matplotlib
ForDataScientist - Python matplotlibAnnalisa Vignoli
 

Viewers also liked (12)

Numpy + Pandas: Corso Python avanzato - ForDataScientist 01
Numpy + Pandas: Corso Python avanzato - ForDataScientist 01Numpy + Pandas: Corso Python avanzato - ForDataScientist 01
Numpy + Pandas: Corso Python avanzato - ForDataScientist 01
 
Python base lezione 3
Python base lezione 3Python base lezione 3
Python base lezione 3
 
Python base lezione 2
Python base lezione 2Python base lezione 2
Python base lezione 2
 
Web base - SVG
Web base - SVGWeb base - SVG
Web base - SVG
 
ForDataScientist - Python advanced data
ForDataScientist - Python advanced dataForDataScientist - Python advanced data
ForDataScientist - Python advanced data
 
WEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie webWEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie web
 
Web base - CSS e selettori
Web base - CSS e selettoriWeb base - CSS e selettori
Web base - CSS e selettori
 
Python base lezione 5
Python base lezione 5Python base lezione 5
Python base lezione 5
 
Web base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di baseWeb base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di base
 
Web base - HTML
Web base - HTMLWeb base - HTML
Web base - HTML
 
Python base lezione1
Python base lezione1Python base lezione1
Python base lezione1
 
ForDataScientist - Python matplotlib
ForDataScientist - Python matplotlibForDataScientist - Python matplotlib
ForDataScientist - Python matplotlib
 

More from Annalisa Vignoli

Presentazione Ulisse - Rame
Presentazione Ulisse - RamePresentazione Ulisse - Rame
Presentazione Ulisse - RameAnnalisa Vignoli
 
Presentazione Ulisse - Acciaio
Presentazione Ulisse - AcciaioPresentazione Ulisse - Acciaio
Presentazione Ulisse - AcciaioAnnalisa Vignoli
 
Fordatascientist - Tecnologie Web base
Fordatascientist - Tecnologie Web baseFordatascientist - Tecnologie Web base
Fordatascientist - Tecnologie Web baseAnnalisa Vignoli
 
Fordascientist - Python reportlab
Fordascientist - Python reportlabFordascientist - Python reportlab
Fordascientist - Python reportlabAnnalisa Vignoli
 
ForDataScientist - Python base parte2
ForDataScientist - Python base parte2ForDataScientist - Python base parte2
ForDataScientist - Python base parte2Annalisa Vignoli
 
ForDataScientist - Python base parte1
ForDataScientist - Python base parte1ForDataScientist - Python base parte1
ForDataScientist - Python base parte1Annalisa Vignoli
 

More from Annalisa Vignoli (8)

Presentazione Corsi FDS
Presentazione Corsi FDSPresentazione Corsi FDS
Presentazione Corsi FDS
 
Presentazione Ulisse - Rame
Presentazione Ulisse - RamePresentazione Ulisse - Rame
Presentazione Ulisse - Rame
 
Presentazione Ulisse - Acciaio
Presentazione Ulisse - AcciaioPresentazione Ulisse - Acciaio
Presentazione Ulisse - Acciaio
 
Fordatascientist - Tecnologie Web base
Fordatascientist - Tecnologie Web baseFordatascientist - Tecnologie Web base
Fordatascientist - Tecnologie Web base
 
Fordascientist - Python reportlab
Fordascientist - Python reportlabFordascientist - Python reportlab
Fordascientist - Python reportlab
 
ForDataScientist - Python base parte2
ForDataScientist - Python base parte2ForDataScientist - Python base parte2
ForDataScientist - Python base parte2
 
ForDataScientist - Python base parte1
ForDataScientist - Python base parte1ForDataScientist - Python base parte1
ForDataScientist - Python base parte1
 
abstract_tesi
abstract_tesiabstract_tesi
abstract_tesi
 

Python base lezione 4