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]