Upload
vubao
View
219
Download
1
Embed Size (px)
Citation preview
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Programmazione in Python per labioinformaticaUniversity of Verona
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Sommario
Presentazione Corso
Python: concetti base
tipi primitivi e variabilistringhe e operatori notevolieseguire codice python
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Presentazion del corso
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Docente
Contatti
Alessandro Farinelli
Dipartimento di InformaticaCa Vignal 1 - Primo piano - Stanza 1.87Tel. 0458027072 e-mail [email protected]
Ricevimento:
Mercoledi' 16:00 � 18:00appuntamento tramite e-mail in altri orari
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Corso
Descrizione del Corso
dal 5 Aprile al 13 Maggio
24 ore (tutte in lab.)
12 lezioni, 2 ore ciascuna
Martedi' 17:30 � 19:30 Lab DeltaVenerdi' 11:30 � 13:30 Lab Alpha
frequenza non obbligatoria
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Esame
Modalita' Esame
Esame senza voto (passato o no)
Progetto di programmazione da svolgere durante il corso(o a casa) + test del codice in lab
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Pre-requisiti
Conoscenze di base
Esperienza di programmazione in Java (o linguaggi di altolivello simili)
Per laureandi triennali, aver verbalizzato corso base diProgrammazione
La conoscenza di processi biologici può aiutare ma non ènecessaria
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Programma
Programma del corso
Concetti di base per Python
Strutture dati
Funzioni e moduli
Operazioni I/O
Biopython (utilizzo basilare)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Materiale per il corso
materiale per il corso
Slides
disponibili su sito del corso
Libri (non indispensabili ma suggeriti)
Learning Python, Mark LutzThink Python, Allen B. Downey (Available online)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Risorse utili
Risorse online
sito web u�ciale per Python
tutorial interattivo per imparare Python
Python for Genomic Data Science (coursera)
Thanks!
Questo corso prende ispirazione dal corso Python for GenomicData Science tenuto da Mihaela Pertea e Steven Salzberg, JohnHopkins University.
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Accesso ai �le durante il corso
Accesso ai �le
Sito del corso
code
Copiare i �le in locale per modi�carli
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Cosa impararete
Alla �ne del corso dovreste
conoscere le basi di Python
essere in grado di progettare, scrivere ed eseguire funzioni escript Python
essere in grado di risolvere problemi di programmazione dibase in Python (orientato verso la Bioinformatica)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Perchè Python
Cosa pensa la maggior parte delle persone circa Python
molto facile da leggere (chiaro)
non è retro'compatibile ⇒ pulito
conciso (non si deve scrivere molto...)
spesso de�nito come pseudocodice eseguibile
incremento notevole della produttività
tutti usano Python
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Cosa è Python ?
Python... in breve
linguaggio di programmazione molto potente
potente: tante librerie specializzate
ottimo trade-o� tra semplicità ed e�cienza
strutture dati e�cienti ma e�caci, orientato agli oggetti...ma non troppo!
interpretato
compilato: codice sorgente → linguaggio macchina →esecuzioneinterpretato: codice sorgente → eseguito direttamente (piùlento, ma molto utile per testing)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Una breve storia di Python
La storia di Python
progettato e sviluppato negli inizi del 1990 da Guido vanRossum (National Research Institute for Mathematics andComputer Science, The Netherland)
varie release:
versione 1.0 1994versione 2.0 2000versione 3.0 2008
Versione 3.0 cambio netto e non retro-compatibile. Noiutilizzeremo la Versione 3
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Da dove posso scaricare Python ?
Sito web u�ciale
Repository u�ciale per codice, releases, documentazione etc.http://www.python.org/download
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Come eseguire l'interprete
eseguire l'interprete di Python
Da una console (e.g., terminal in unix) digitare python
Usare python3.x per la versione 3 (consiglio in unix, usare tabdopo aver scritto python per veri�care le opzioni).
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Interagire con l'interprete
Il famoso Hello world!
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Fare semplici calcoli in Python
Usare l'interprete come una calcolatrice
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Tipi e numeri
I numeri possono essere di vari tipi
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Stringhe I
Strings
le stringhe possono essere de�nite con ' o � (in maniera deltutto indi�erente)
l'uso di ' come carattere nella stringa può essererecuperato usando � oppure \
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Stringhe II
Strings
posso de�nire stringhe su più linee usando
""" <sequenza di caratteri> """
il carattere \n indica il return
esistono altri escape characters come \t per TAB o \\ perBACKSLASH
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Stampare Stringhe
la funzione print()
print() stampa le stringhe con un formato user friendly.
si possono usare degli operatori (formatting operator) perstampare in maniera piu' semplice e strutturata.
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Operatori per le stringhe
manipolare stringhe
s1+ s2 concatena stringhe s1 ed s2
s1 ∗ v ripete s1 v volte
s1 in s2 appartenenza (vero se s1 è una sottostringa di s2)
s1 not in s2 non appartenenza (vero se s1 non è unasottostringa di s2).
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Variabili
Contenitori dei dati
vengono assegnate con il simbolo =
devono essere de�nite prima di essere usate
NON si speci�ca il tipo (int, �oat, str, etc.)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Nomi per le variabili
Regole per i nomi
i nomi delle variabili sono case sensitive
i nomi delle varibili possono essere formati solo da lettere,numeri (ma non il primo carattere), il simbolo _(underscore)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Manipolare variabili (Stringhe)
Operatori per stringhe
str[i] indicizzazione: ritorna il carattere nella posizione i(partendo da 0)
str[i:j] slicing: ritorna la sottostringa di str che parte da i(incluso) ed arriva a j (escluso)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Alcune funzioni native (built-in)
la funzione len()
len(my_str) ritorna la lunghezza della stringa my_str
può essere applicata anche ad altri tipi (e.g., liste)
Esempi di altre funzioni native
print(), type()
help(len):
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Esercizi su variabili e stringhe
Eserc 1
Q1 creare una stringa che contenga 5 volte la sottostringa'atg' e 2 volte la sottostringa 'cga';
Q2 concatenare 4 stringhe a scelta in una nuova stringa,stampare la lunghezza della stringa risultante.
Sol eserc-1.txt
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Stringhe come oggetti
Stringhe come oggetti
le stringhe in Python sono oggetti (come in Java)
possiamo invocare dei metodi sulla speci�ca istanza
<nome-oggetto>.<nome-metodo>(<parametri>)
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Stringhe funzioni notevoli
Funzioni utili per le stringhe
NOTA: l'oggetto di invocazione non viene modi�cato
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Esercizi su variabili e stringhe
Eserc 2
Q1 data una stringa contenente i 4 caratteri a,t,c,g, calcolare estampare la percentuale di caratteri 'a' e 't' presenti nellastringa
Q2 creare una stringa che contenga esattamente il 25% dicaratteri at
Q3 date due stringhe s1 ed s2 qualsiasi, stampare True se s1 e'una sottostringa di s2 e false altrimenti.
Sol eserc-2.txt
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Come risolvere un semplice problema in Python
calcolare la percentuale 'at' di una stringa che contiene solamentei caratteri: atcg (sia minuscoli che maiuscoli)
Operazioni richieste:
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Come scrivere e lanciare un semplice script in Python
Scrivere uno script su �le
Lanciare lo script
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Come eseguire un semplice script in Python
Rendere uno script eseguibile
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Come commentare il codice python Python
Commentare il codice e' fondamentale
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Esercizi su script
Eserc 3
Q1 scrivere uno script che date due stringhe s1 ed s2 qualsiasi,stampa le due stringhe e poi True se s1 e' una sottostringadi s2 e false altrimenti [Sol: eserc-3Q1.py].
Q2 scrivere uno script che data una stringa composta daicaratteri 1 e 0 stampa una stringa in cui tutti gli 0 sonodiventati 1 e viceversa (e.g., '10001' diventa '01110') [Sol:eserc-3Q2.py].
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Input da tastiera
Come leggere dalla tastiera
la funzione input(...) legge una stringa �no al return dallatastiera
la stringa viene ritornata dalla funzione
Esempio
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Conversioni di tipo
Convertire un tipo in un altro
la funzione input(...) ritorna sempre una stringa
possiamo usare la funzione int(...) per convertire unastringa in un numero
Esempio
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Funzioni per convertire i tipi
funzioni per convertire i tipi
int(x), trasforma la stringa in x in un numero in base 10
int(x,base), trasforma la stringa x in un numero in basebase
�oat(x), trasforma la stringa x in un numero decimale
vedere sito python per tutte le funzioni built-in checomprendono quelle di conversione
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Formattare l'output I
Uso della funzione print(...)
due modalita' principali: usando la concatenazione ousando l'operatore % (formatting o interpolation)
%5.3f = �oat con 5 cifre totali di cui 3 decimali
se usiamo l'operatore % allora per stampare il carattere %dobbiamo usare %%
se usiamo due volte il % dobbiamo speci�care due valorinelle parentesi tonde dopo il % �nale
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Formattare l'output II
Usare print(...) con vari tipi di dato
Programmazionein Python
per la bioin-formatica
PResentazionedel Corso
Python: cosaè perchèstudiarlo
Python primipassi: numerie stringhe
Variabili
Esercizi
Eserc 4
Q1 scrivere uno script che chiede all'utente una stringa di dna(i.e., una stringa contenente solo i caratteri atcg) e stampal'indice della seconda occorrenza del carattere 'a' [aiuto:usare il metodo �nd(...), nota che �nd(x,i) ritorna l'indicedella prima occorrenza di x dall'indice i in poi] [Sol:eserc-4Q1.py].
Q2 scrivere uno script che chiede all'utente una stringa di dnae stampa l'indice dell'ultima occorrenza della sottosequenza'atg' [aiuto: usare il metodo r�nd(...)] [Sol: eserc-4Q2.py].
Q3 scrivere uno script che data una stringa composta daicaratteri 1 e 0 stampa il numero di occorrenze del carattere1 ed il numero di occorrenze del carattere 0 usando unasola chiamata alla funzione print(). [Sol: eserc-4Q3.py].