25

Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Embed Size (px)

Citation preview

Page 1: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Programmazione in Python per labioinformatica

University of Verona

Page 2: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Sommario

Selezione (if)

Cicli (while � for)

Page 3: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Cambiare il �usso di esecuzione di un programma

Page 4: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Selezione Semplice

Selezione Semplice

in Python l'indentazione ha un signi�cato sintattico!

Page 5: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Condizioni

Boolean Expression

la condizione nell'if e' una Boolean Expression

Boolean expression: espressione che vale true o false

Boolean expression: costruite con gli operatori di:

Comparazione (Comparison)Appartenenza (Membership)Identità (Identity)

Page 6: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Comparazione

Operatori di comparazione

Page 7: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Appartenenza

Operatori di appartenenza

Page 8: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Identità

Operatori di identità

Page 9: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Selezione a due vie

Selezione a due vie

Page 10: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Selezione a due vie

Selezione a due vie

Page 11: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Selezione ad n vie

Selezione ad n vie

Controlliamo varie condizioni in una sola struttura di selezioneelif: parola chiave per rappresentare else if

Page 12: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Operatori Logici

Operatori Logici

and: vero se entrambe le cond. sono vere

or: vero se almeno una delle due cond. è vera

not: vero se la condizione è falsa

Page 13: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Esercizi su Selezione

Eserc if

Q1 scrivere uno script che chieda all'utente una stringa di dna.La stringa viene considerata valida se contiene solocaratteri 'atcg'. Controllare se la stringa e' valida estampare un messaggio corrispondente. Scaricare emodi�care il �le eserc-if-Q1.py [Sol: eserc-if-Q1.sol]

Q2 scrivere uno script che prende in input un nucleotide estampa il nucleotide complementare (i.e., a:t,c:g,g:c,t:a).Se il carattere non e' un nucleotide stampa un messaggiodi errore. Scaricare e modi�care il �le eserc-if-Q2.py [Sol:eserc-if-Q2.sol]

Page 14: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Il concetto di ciclo

Ripetere le istruzioni

Page 15: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Ciclo while

Trovare gli indici di tutte le occorrenze di 'atg' in una stringa didna

Page 16: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Ciclo for

Data una lista di stringhe ritornare il numero di occorrenze dellasottostringa 'atg' in ciascuna stringa

Page 17: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

La funzione range

Utilizzo della funzione range

Page 18: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

La funzione range esecuzione

Esecuzione

Page 19: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

La funzione range esempio

Stampare tutti gli amminoacidi non validi all'interno di una dataproteina

Page 20: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Uscire dai cicli: break e else (per cicli!)

Decidere se una proteina è valida

break: esce dal ciclo che lo contiene

else: eseguito al termine del ciclo (e.g., quando lacondizione del while diventa falsa)

Page 21: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Evitare una iterazione del ciclo: continue

Correggere una proteina togliendo i caratteri non validi

continue: passa alla prossima iterazione del ciclo che locontiene

Page 22: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

L'istruzione pass

pass: placeholder

pass: non esegue nessuna funzione, utile per rispettare lasintassi del linguaggio

spesso usato in fase prototipale del codice

Page 23: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Cicli annidati

Posso annidare i cicli

Page 24: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Esercizi su Cicli

Eserc loops

Q1 scrivere uno script che calcola un numero randomico (X) echiede all'utente di indovinarlo. Lo script prosegue �no ache l'utente non ha indovinato il numero o ha eseguito unnumero massimo di tentativi (e.g., 5). Ad ogni step loscript chiede un numero all'utente (N), se N e' uguale ad Xtermina e stampa un messaggio di successo. Altrimenticomunica all'utente se N e' maggiore o minore di X.eserc-loops-Q1.py [Sol: eserc-loops-Q1.sol]

Page 25: Programmazione in Python per la - profs.sci.univr.itprofs.sci.univr.it/~farinelli/courses/python/slides/branch-loops.pdf · Programmazione in Python per la bioin-formatica Selezione

Programmazionein Python

per la bioin-formatica

Selezione

Cicli

Esercizi su Cicli annidati

Eserc nloops

Q1 data una stringa stampare tutte le sottostringhe dellastringa data. Usare il ciclo for. Scaricare e modi�care il �leeserc-nloops-Q1.py [Sol: eserc-nloops-Q1.sol]

Q2 risolvere l'esercizio Q1 usando il ciclo while. Scaricare emodi�care il �le [Sol: eserc-nloops-Q2.sol]