• Non ci sono risultati.

Informatica Corso di Laurea in Scienze Geologiche Terza Parte

N/A
N/A
Protected

Academic year: 2021

Condividi "Informatica Corso di Laurea in Scienze Geologiche Terza Parte"

Copied!
15
0
0

Testo completo

(1)

Informatica

Corso di Laurea in Scienze Geologiche Terza Parte

Ugo Dal Lago

Anno Accademico 2015-2016

(2)

Sezione 1

Python: e il Resto?

(3)

C’è Altro?

I Il frammento di Python che abbiamo studiato finora è certamente sufficiente allo sviluppo di piccoli programmi.

I Nondimeno, tanti altri costrutti e istruzioni sono disponibili, alcuni dei quali risultano utili quando la dimensione dei progetti diventa non banale.

I Non abbiamo tempo per parlarne, ma vale la pena dare una scorsa, molto veloce, ad alcuni dei costrutti che non

abbiamo visto.

I Maggiori informazioni su questi argomenti possono essere recuperate:

I Sul libro di testo;

I In rete.

(4)

Dizionari

I I dizionari sono generalizzazioni delle liste nei quali gli indici non sono necessariamente numeri naturali, ma oggetti modificabili qualunque.

I Esempio:

> > > x ={}

> > > x [’ a ’]=3

> > > x {’ a ’: 3}

> > > x [ True ]=6

> > > x

{’ a ’: 3 , True : 6}

> > > x . keys () [’ a ’, True ]

> > > x . v a l u e s () [3 , 6]

(5)

Classi

I In Python è addirittura possibile creare nuovi tipi di dato, attraverso il comando class.

I In questo modo è possibile definire tipi di dato che

corrispondano direttamente alle entità del problema che si vogliono modellare.

I I metodi che è possibile chiamare sugli oggetti di una certa classe parte della definizione stessa.

I Esempio: se stessimo scrivendo un programma per la gestione di dati di tipo geografico, potremmo optare per una classe island dotata di metodi come extension(), name(), etc.

I L’uso delle classi non è necessario se il programma Python che si sta scrivendo è semplice.

I Tutto questo vale, ad esempio, per tutti i programmi che abbiamo scritto e che scriveremo in questo corso.

(6)

Sezione 2

Sviluppo di Applicazioni

(7)

Commentare il Codice — I

I Commentare il codice Python lo rende più comprensibile.

I In particolare, è spesso utile usare i commenti per:

I Descrivere il ruolo delle variabili;

I Spiegare quale sia il tipo atteso di un parametro formale in una funzione.

I I commenti si possono inserire in due modi diversi:

I Se occupano una sola riga, si possono inserire tramite il simbolo #. Tutto ciò che segue tale carattere nella riga corrente è considerato commento, e quindi scartato.

I I commenti che occupano più di una riga, sono invece delimitati da tre virgolette.

(8)

Commentare il Codice — II

def s c a l m u l t ( v , c ):

i =0

w h i l e i < len ( v ):

v [ i ]= v [ i ]* c

def s c a l m u l t ( v , c ):

""" A s s u m i a m o che v sia l i s t a e che c sia f l o a t """

i =0 # C o n t a t o r e w h i l e i < len ( v ):

v [ i ]= v [ i ]* c

# Qui non c ’ è b i s o g n o

# del r e t u r n

(9)

Testare il Codice

I Una volta finito di scrivere il nostro programma Python, il nostro lavoro non è certo finito.

I Prima di mettere all’opera il programma per fare i nostri calcoli, è necessario testarlo, in modo da scoprire eventuali problemi prima che sia troppo tardi.

I Si può per esempio procedere testando tutte le funzioni che il nostro programma definisce.

I Un testing esaustivo di ciascuna funzione è impossibile.

I Ciò equivale ad osservare il comportamento della funzione su ogni input possibile.

I Occorre quindi costruire una cosiddetta testing suite, ovvero un insieme di input limitato, ma rappresentativo.

I Il libro di testo contiene un capitolo dedicato all’argomento.

(10)

Sezione 3

Alcuni Moduli

(11)

Il Modulo pylab — I

I Il modulo pylab permette di disegnare dei grafici.

I Una descrizione abbastanza intuitiva (ma dettagliata!) del modulo si può trovare nel libro di testo.

I Esempio:

i m p o r t p y l a b p y l a b . f i g u r e (1)

p y l a b . plot ([ -2 , -1 ,0 ,1 ,2] ,[4 ,1 ,0 ,1 ,4]) p y l a b . show ()

I Il risultato è quello alla pagina successiva.

(12)

Il Modulo pylab — II

(13)

Il Modulo random

I L’esecuzione di un certo programma Python fissato, se le condizioni a contorno sono le stesse, è sempre la stessa.

I Talvolta, però, risulta necessario generare dati casuali.

I Ogniqualvolta, ad esempio, occorra simulare fenomeni fisici tramite il calcolatore.

I Questo è precisamente che permette di fare il modulo random.

I Esempio:

> > > i m p o r t r a n d o m

> > > r a n d o m . c h o i c e ([ True , F a l s e ]) F a l s e

> > > r a n d o m . c h o i c e ([1 ,2 ,3 ,4 ,5 ,6]) 3

> > > r a n d o m . c h o i c e ([1 ,2 ,3 ,4 ,5 ,6]) 1

(14)

Il Modulo urllib2

I Talvolta risulta utile poter aprire dei file che non risiedano nel nostro elaboratore, ma sulla rete.

I Per questo specifico scopo, il modulo urllib2 mette a disposizione specifiche funzionalità.

I Il file remoto verrà visto come un file handler, e potremo accedere ad esso solo in lettura.

I Oltre alla possibilità di vedere il file handler come una sequenza e usare for, possiamo ora usare il metodo readlines.

I Esempio:

i m p o r t u r l l i b 2

s =’ h t t p :// www . cs . u n i b o . it /~ d a l l a g o ’ f i l e h a n d l e = u r l l i b 2 . u r l o p e n ( s ) x = f i l e h a n d l e . r e a d l i n e s ()

(15)

Tutto qui?

I Certamente no!

I La quantità di moduli disponibili per il linguaggio Python è enorme.

I Esempi:

I Calcolo numerico: numpy

I Accesso a database.

I GIS: geopy

I . . .

I Un buon modo per rendersi conto se esiste un modulo che faccia esattamente ciò di cui ho bisogno è documentarsi:

I Sul libro di testo.

I Sulla rete.

Riferimenti

Documenti correlati

I Vogliamo costruire un programma Python che permetta di dare all’utente informazioni abbastanza dettagliate sui terremoti avvenuti in qualunque arco temporale sul suolo italiano.. I

I Vogliamo costruire un programma Python che permetta di dare all’utente informazioni abbastanza dettagliate sui terremoti avvenuti nell’ultimo anno nei pressi di un determinato

Applicazioni alla fisica: velocit` acome derivata dello spazio rispetto al tempo, accelerazione come derivata della velocit` a rispetto al tempo, spazio come integrale della velocit`

Corso di Laurea in Scienze Geologiche Corso di MatematicaL. Paladino Foglio di

Dire se le seguenti funzioni sono continue nei

Corso di Laurea in Scienze Geologiche Corso di MatematicaL. Paladino Foglio di

Calcolare la derivata prima e la derivata seconda della seguente funzione.. Determinare gli eventuali punti critici

Corso di Laurea in Scienze Geologiche Corso di