Passaggio parametri e funzioni avanzate

Transcript

Passaggio parametri e funzioni avanzate
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Programmazione in Python per la
bioinformatica
University of Verona
Sommario
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Parametri di default
Numero variabile di parametri
Esempio di funzione complessa
Una funzione per controllare se una stringa di DNA
ha un codone di terminazione
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Denizione della funzione
Aggiungere il frame come parametro
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Funzione con parametro frame
Potrei voler denire un frame: 0,1,2, ovvero la posizione da
cui cercare il codone di terminazione.
Aggiungere parametri di default
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Funzione con parametro frame di default
Posso fare in modo che, se non specicato, il parametro
frame sia 0.
Corrispondenza tra parametri attuali e formali
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Come passare parametri alla funzione
Passare i parametri per posizione, per nome o un mix.
o un mix (ma i parametri con nome devono seguire quelli
specicati per posizione)
Passaggio dei parametri
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Come vengono passati i parametri in Python?
Passaggio per copia = il parametro attuale viene copiato in
una variabile locale
Passaggio per riferimento = la variabile locale è un
riferimento al parametro attuale
Python: Call-by-object, dipende se il parametro attuale è
mutabile o no
Ritornare valori multipli
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Come ritornare più valori in python
Le funzioni in python possono ritornare valori multipli
Di fatto il ritorno è una tupla
Numero variabile di parametri
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Possiamo passare un numero variabile di parametri
Esempio fare la sommatoria di una serie di valori
params viene usata come una tupla ma il passaggio alla
funzione esprime una serie di valori
Espandere tuple o liste
Programmazione
in Python
per la bioinformatica
Possiamo usare * per espandere tuple o liste
Parametri di
default
Numero
variabile di
parametri
Numero variabile di parametri, usando il nome
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Possiamo passare un numero variabile di parametri associando un
nome ai parametri
Si utilizza l'operatore ** che comprime i parametri
associati al nome in un dizionario
la lista di associazioni nomi valore può essere usato come
un dizionario nel corpo della funzione
Esempio fare la sommatoria o la produttoria di una serie di
valori
Vedere il le parametri-variabili.py
Espandere tuple o liste
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Possiamo usare ** per espandere dizionari
Esercizi su Denizione di funzioni
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Eserc par
Q1 Scrivere una funzione swap che scambi due variabili di
qualsiasi tipo. Scaricare e modicare il le eserc-par-Q1.py
[Sol: eserc-par-Q1.sol]
Q2 La funzione denita nel le eserc-par-Q2.py calcola un
valore a partire da tre input. Scrivere l'equazione che viene
calcolata dalla funzione. [Sol: eserc-par-Q2.txt]
Q3 Scrivere una funzione che stampi tra quali numeri si sta
eseguendo la sommatoria separati dal simbolo di somma ed
il valore della sommatoria dopo il simbolo di uguale. e.g.
sommatoria(1,2,3,4) stampa 1 + 2 + 3 + 4 = 10.
Scaricare e modicare il le eserc-par-Q3.py [Sol:
eserc-par-Q3.sol]
Esercizio funzione avanzata
Programmazione
in Python
per la bioinformatica
Parametri di
default
Numero
variabile di
parametri
Eserc adv
Scrivere una funzione che data una stringa di dna ed un
dizionario che associa nucleotidi a nucelotidi, calcoli la
stringa complementare inversa, ovvero la stinga inversa in
cui ogni nucleotide viene sostituito con quello associato nel
dizionario. Scaricare e modicare il le inv-trans.py [Sol:
inv-trans.sol]