Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in...

36
1 Laboratorio di Elementi di Bioinformatica Laurea Triennale in Informatica (codice: E3101Q116) AA 2017/2018 Linguaggio Python: introduzione Docente: Raffaella Rizzi

Transcript of Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in...

Page 1: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

1

Laboratorio di Elementi di Bioinformatica

Laurea Triennale in Informatica

(codice: E3101Q116)

AA 2017/2018 Linguaggio Python:

introduzione

Docente: Raffaella Rizzi

Page 2: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Introduzione a Python

Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione py. Per eseguirlo basta digitare dalla shell:

python script_file

Page 3: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Introduzione a Python

Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione py. Per eseguirlo basta digitare dalla shell:

python script_file

Se lo si vuole lanciare come: ./script_file Allora si deve aggiungere all’inizio dello script la direttiva #!/usr/bin/python

Page 4: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

La funzione printprint(arg)

Cosa fa print?

Produce in standard output l’argomento e stampa un carattere di newline alla fine

Page 5: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

La funzione printprint(arg)

Cosa fa print?

Produce in standard output l’argomento e stampa un carattere di newline alla fine

print(“Ciao mondo!”)

Ciao mondo!-

Page 6: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

La funzione printprint(arg)

Cosa fa print?

Produce in standard output l’argomento e stampa un carattere di newline alla fine

print(“Ciao mondo!”+”Hello world!”)

Ciao mondo!Hello world!-

Page 7: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

La funzione print

print(1+3)

4-

print(arg)

Cosa fa print?

Produce in standard output l’argomento e stampa un carattere di newline alla fine

Page 8: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Python è un linguaggio orientato agli oggetti e tutto ciò che viene manipolato o restituito è un (riferimento a) oggetto. Quindi:

q il “contenuto” di una variabile è sempre un riferimento a un oggetto

Page 9: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Python è un linguaggio orientato agli oggetti e tutto ciò che viene manipolato o restituito è un (riferimento a) oggetto. Quindi:

q il “contenuto” di una variabile è sempre un riferimento a un oggetto

q Tutto è considerato vero tranne il valore intero 0 e il valore decimale 0.0 (la stringa “0” è considerata un valore vero)

Page 10: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Python è un linguaggio orientato agli oggetti e tutto ciò che viene manipolato o restituito è un (riferimento a) oggetto. Quindi:

q il “contenuto” di una variabile è sempre un riferimento a un oggetto

q Tutto è considerato vero tranne il valore intero 0 e il valore decimale 0.0 (la stringa “0” è considerata un valore vero)

q I commenti iniziano con il simbolo # e terminano alla fine della riga

Page 11: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Python è un linguaggio orientato agli oggetti e tutto ciò che viene manipolato o restituito è un (riferimento a) oggetto. Quindi:

q il “contenuto” di una variabile è sempre un riferimento a un oggetto

q Tutto è considerato vero tranne il valore intero 0 e il valore decimale 0.0 (la stringa “0” è considerata un valore vero)

q I commenti iniziano con il simbolo # e terminano alla fine della riga

q Il simbolo ; alla fine di un’istruzione è opzionale

Page 12: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Le variabili non vengono dichiarate e incominciano a esistere nel momento in cui si assegna loro un valore

Page 13: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Le variabili non vengono dichiarate e incominciano a esistere nel momento in cui si assegna loro un valore

q Le variabili non sono tipizzate e il loro tipo viene determinato automaticamente nel momento in cui il valore viene assegnato

Page 14: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Le variabili non vengono dichiarate e incominciano a esistere nel momento in cui si assegna loro un valore

q Le variabili non sono tipizzate e il loro tipo viene determinato automaticamente nel momento in cui il valore viene assegnato

a = 1245print(a)

1245-

Page 15: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Le parentesi tonde che racchiudono i parametri attuali di un metodo/funzione sono opzionali (tranne quando servono per disambiguare invocazioni annidate)

Page 16: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Le parentesi tonde che racchiudono i parametri attuali di un metodo/funzione sono opzionali (tranne quando servono per disambiguare invocazioni annidate)

q Attenzione alle indentazioni!

x = 10 y = 11

Non funziona!!

Page 17: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Le parentesi tonde che racchiudono i parametri attuali di un metodo/funzione sono opzionali (tranne quando servono per disambiguare invocazioni annidate)

q Attenzione alle indentazioni! q I nomi di variabile possono contenere solo cifre, lettere e il

simbolo _. Non possono iniziare con una cifra e in genere sono in minuscolo

Page 18: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Le “cose” da sapere su Python

q Le parentesi tonde che racchiudono i parametri attuali di un metodo/funzione sono opzionali (tranne quando servono per disambiguare invocazioni annidate)

q Attenzione alle indentazioni! q I nomi di variabile possono contenere solo cifre, lettere e il

simbolo _. Non possono iniziare con una cifra e in genere sono in minuscolo

q Python è case sensitive

Page 19: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Valori booleani à oggetti di tipo bool

q True e False

b = Trueprint(b)

True-

Page 20: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Numeri interi à oggetti di tipo int

i = 1301print(i)

1301-

Page 21: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Numeri interi à oggetti di tipo int

i = -1301print(i)

-1301-

Page 22: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Numeri decimali à oggetti di tipo float

f = 1301.15print(f)

1301.15-

Page 23: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Numeri decimali à oggetti di tipo float

f = -1301.15print(f)

-1301.15-

Page 24: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Numeri decimali à oggetti di tipo float

f = 1301.15print(f)

1301.15-

Page 25: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Stringhe à oggetti di tipo str

s = ‘ciao’print(s)

ciao-

Il letterale stringa è una sequenza di simboli racchiusa tra singoli apici ‘

Page 26: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

I tipi standardq Stringhe à oggetti di tipo str

… opppure tra doppi apici “

s = “ciao”print(s)

ciao-

Page 27: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Operatori numericiq somma à +q sottrazione à -q moltiplicazione à *q divisione à / (intera se i due operandi sono interi e

decimale se almeno uno dei due operandi è decimale q elevamento a potenza à **q modulo à %

Page 28: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Operatori di confrontoq uguaglianza à ==q diversità à !=q minore di à <q maggiore di à >q minore o uguale a à <=q maggiore o uguale a à >=

Page 29: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Operatori logiciq congiunzione logica à andq disgiunzione logica à orq negazione logica à not

Page 30: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Operatori logiciq congiunzione logica à andq disgiunzione logica à orq negazione logica à not42 and 0 à 042 and False à FalseFalse and 42 à FalseFalse or 42 à 42

Page 31: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

La funzione

à Sequenza di istruzioni a cui viene assegnato un nome da invocare nel momento in cui si vuole eseguire la sequenza di istruzioni def <function_name>(<args>): <function_body> #Indentazione di 4 spazi<empty_row> def fun1(x,y): return x+y

print(fun1(5,4))

9-

Page 32: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

La funzione

à Una funzione va definita prima di usarla à  I parametri di una funzione non sono tipizzati (ad uno stesso

parametro possono essere passati valori di tipo diverso in due diverse chiamate)

à  I parametri e le variabili all’interno del corpo di istruzioni sono locali alla funzione

à Una funzione che non ha un’istruzione return ritorna il valore None di tipo NoneType

def fun1(x,y): x+y

print(fun1(5,4))

None-

Page 33: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Il modulo

à File contenente definizioni e istruzioni da usare in uno script

import <module_name> import math

print(math.sqrt(25))

5.0-

Page 34: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Argomenti da linea di comando

à Il modulo sys permette di recuperare gli argomenti della linea di comando con cui si lancia uno script attraverso l’array argv

import sys

sys.argv[0] #nome dello scriptsys.argv[1] #primo argomento della linea di comandosys.argv[2] #secondo argomento della linea di comando…

Page 35: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Lettura di un file

with open(file_name,’r’) as input_file: for row in input_file: # do something with row

Page 36: Laboratorio di Elementi di Bioinformatica · 2017. 10. 3. · Introduzione a Python Un codice in linguaggio Python deve essere contenuto in un file di puro testo che ha estensione

Lettura di un file

with open(file_name,’r’) as input_file: for row in input_file: # do something with row

with open(file_name,’r’) as input_file: file_rows = input_file.readlines()

# do something with file_rows