vuoi
o PayPal
tutte le volte che vuoi
INFO 19.11.20 FUNZIONI
Eseguire tante volte un blocco di istruzioni -> for o while con n volte
➢ Funzione: esegue una sequenza di istruzioni -> include un altro programma
FUNZIONE: permette di costruire una complessità con tante istruzioni???
- Built in
- Definite dall’autore
FUNZIONE = SCATOLA NERA, BLACK BOX
- oggetto prodotto da una valutazione della funzione
- Primo argomento è arrotondato alle prime due cifre
dopo la virgola
- Contratto tra la funzione e chi chiama la funzione
- Invocazione/chiamata della funzione
- Passo gli argomenti alla funzione e mi ritorna il
valore di ritorno dalla funzione
➔ Come la esegue? BHO
➔ Parametri attuali o argomenti (2 e 6.54234) e valore di ritorno (6.54)
MODELLO DI ESECUZIONE
➢ Chiamante: invoca la funzione round() passando due argomenti -> istruzioni che diamo
➢ Chiamato: funzione round() che svolge altre istruzioni (es 5 istruzioi che corrispondono alla
funzione round)
o Funzione = sorta di sottoprogramma e ha un valore di ritorno
➢ Ritorna al chiamante il valore di ritorno
➢ il valore di ritorno viene associata alla variabile
➢ Noi conosciamo solo l’interfaccia della funzione, non la sua
implementazione
o Siamo estranei alle istruzioni svolte dalla funzione -> astrazione
o Non sappiamo che istruzioni svolge per giungere al valore di ritorno,
ma non ci interessa
FUNZIONI DEI LINGUAGGI DI PROGRAMMAZIONE DI ALTO LIVELLO
➢ Funz definita da un nome simbolico e una sequenza di istruzioni associate al nome simbolico
o In phyton -> funzione è un OGGETTO identificato da un nome
➢ Nome simbolico -> qualunque (come variabili e con stesse limitazioni)
➢ Definizione della funz e chiamata della funz:
o 1. Costruisco una nuova funzione -> creo un’interfaccia e con una determinata
semantica
o 2. Invocare una funzione
FUNZIONI BUILT IN
- PHYTON ha una libreria di funzioni enorme -> x questo molto utilizzato
➢ Built in -> funzioni definite dal linguaggio di programmazione
➢ Funzioni definite dall’utente -> ‘personalizzate’
CHIAMATA A FUNZIONE BUILT-IN
➢ Round -> nome simbolico non c’entra con le istruzioni che va a svolgere la funzione
o Ma è molto meglio sceglierne uno che ricordi la sua funzionalità
➢ Per chiamare la funzione devo averla DEFINITA (come per le variabili)
Librerie di base: funzioni matematiche, per la generazione di numeri casuali
BUILT-IN PHYTON
- Input(arg) e print(+espr..) -> non ne conosciamo l’implementazione, IDC = BLACK BOX
- Len(stringa,lista,dizionario) -> lunghezza
- Abs(numero) -> valore assoluto
- Round(numero1, numero2) -> arrotondamento del num1 a cifre dec di num2
- Int(numero,stringa) -> num o strg in tipo intero
- Str(int, float)
- Float(num,stringa)
Differenza tra chiamata a funzioni builtin e ai metodi i un oggetto:
➢ Chiamata builin -> funz(arg)
➢ Chiamata met ogg -> ogg/var.nomemetodo(arg)
IN PHYTON TUTTO è UN OGGETTO:
➢ Oggetto:
o Insieme di dati
o Insieme di meta-dati
o Un insieme di funzioni proprie dell’oggetto -> metodi -> associati agli oggetti stessi
Es. metodo:
o Split -> val = x.split() ->
➢ Esistono diversi metodi per ogni tipo: Metodi -> propri
dell’oggetto stesso
Per le stringhe sono
tantissimi
➔ Help(nomeVar.metodo) -> descrizione del
metodo
➔ SPLIT:
o Ritorna una lista delle parole della
stringa in cui il separatore è uno
spazio
➢ Metodi copy() x dizionari e liste (gia visto)
o Utile per copiare un oggetto e copiarlo, lasciando inalterato l’originale
➢ potevo anche scrivere d1.copy()
SPLIT:
➢ Torna una lista i cui elementi sono le parole della stringa
➢ Posso decidere anche il separatore con cui dividere le parole
CHIAMATA A FUNZIONI:
- Alcune funzioni non sono automaticamente presenti in phyton ma devono essere importate
- FUNZIONI MATEMATICHE:
- Restituiscono un tipo di
Dato float
- FUNZIONI RANDOM:
PROBLEMA:
- Random() -> non ha agromenti -> la lista degli argomenti puo essre anche vuota
o Genera un num reale compreso tra [0,1)
- Se sono in phyton e chiamo random() ottengo errore, stesso per pi -> non tutte le funzioni
built.in sono disponibili immediatamente -> devono essere appunto importate
o Usare FROM-IMPORT
o Usate in coppia
FROM-IMPORT: deve essere usata prima della chiamata a funzioni della libreria
- nomeLibreria = nome simbolico all interno della quale ci sono altri nomi simbolici delle
funzioni -> nome simbolico della libreria contennte la funzione che si vuole
- nomeSimbolico = nome della funzione o costante numerica scelta
➔ Sintassi: