INDICE

Presentazione del corso

Si tratta di un corso:

Introduttivo perche':

Mirato all'ambito scientifico perche':

Pagina web del corso, dispense ed esercizi

le dispense

Alla pagina http://www.ifac.cnr.it/~zoppetti/corsopython/ sono disponibili le dispense in formato html e pdf usate per la lezione frontale.

Si tratta di tracce che, a partire dalla seconda lezione, verranno rese disponibili anticipatamente.

gli esercizi

ci saranno almeno due tipologie di esercizi:

Cosa e' Python

da www.python.org

Python e' un linguaggio di programmazione dinamico orientato agli oggetti utilizzabile per molti tipi di sviluppo software.

Offre un forte supporto all'integrazione con altri linguaggi e programmi, e' fornito di una estesa libreria standard e puo' essere imparato in pochi giorni.

Molti programmatori Python possono confermare un sostanziale aumento di produttivita' e ritengono che il linguaggio incoraggi allo sviluppo di codice di qualita' e manutenibilita' superiori.

Python gira su Windows, Linux/Unix, Mac OS X, OS/2, Amiga, palmari Palm e cellulari Nokia; e' stato anche portato sulle macchine virtuali Java e .NET. Python e' distribuito con licenza Open-Source approvata dalla OSI: il suo utilizzo e' gratuito e libero anche per prodotti commerciali.

In sintesi:

In che senso free?

Python e' distribuito con una licenza che e' 'GPL compatible'

Le licenze di Python, a differenza della GPL, consentono di distribuire una versione modificata del software senza rendere open source le modifiche.

Perche' uso Python

di contro ho sperimentato anche alcuni limiti:

Perche' ho scelto di usare Python3 per il corso

Python 2.0 e' stato reso disponibile nel 2000, ed ha avuto un grande successo. Attualmente siamo alla versione 2.7 e non si prevedono nuovi sviluppi ma solo eventuali bug-fixes. Si prevede comunque che il linguaggio sara' mantenuto per qualche altro anno.

Python 3 e' stato rilasciato nel 2008 ed e' stato introdotto per vari motivi:

Python 3 ed e' un linguaggio oramai maturo, tuttavia non tutti i moduli che hanno decretato il successo di Python sono stati tradotti da Python 2 a Python 3 (il web-framework django e' un esempio).

Nonostante in ambito scientifico, Python 2 (2.7) sia ancora lo standard ho deciso di usare Python 3 perche':

Linguaggi interpretati e compilati

Python e' un linguaggio di programmazione interpretato.

Cio' vuol dire che con il termine 'Python' si indicano sostanzialmente due cose distinte:

  1. Il linguaggio inteso come insieme di regole formali che comprendono lessico, sintassi e semantica ('linguaggio' o 'Python' nel seguito. In questo corso parleremo soprattutto di questo).
  2. Un programma ('l'interprete' nel seguito) che interpreta il 'codice sorgente' scritto nel linguaggio di cui sopra.

Lo schema di principio e' quindi il seguente:

L'interprete, che come si e' gia' detto e' un programma, dato un certo set di istruzioni in liguaggio python dovra':

Nel caso si utilizzi un linguaggio compilato ci si rifa' ad uno schema di principio come quello sotto:

multipiattaforma

Dai precedenti schemi e' facile comprendere che una volta che l'interprete e le eventuali librerie aggiuntive sono disponibili per una piattaforma (e python lo e' per tutte le principali), se un codice sorgente non fa riferimento a risorse specifiche ad una particolare architettura questo girera' su tutte le piattaforme supportate dal linguaggio.

Utilizzando un linguaggio come il C invece il codice sorgente di ogni programma che vogliamo utilizzare deve essere compilato sulla piattaforma che ci interessa.

Per chi vuole approfondire la questione sulla distinzione tra linguaggi compilati e interpretati puo' partire da qui'.

Installazione dei pacchetti necessari allo svolgimento del corso (windows)

La seguente procedura si riferisce ad una installazione su piattaforma windows.
Infatti il corso e' stato sviluppato e gli esempi testati su piattaforma windows a 32 bit.
Anche se gli esempi non sono stati testati su piattaforma a 64 bit le risorse segnalate mettono a disposizione i pacchetti per win64 (vedi qui per valutare i vantaggi).

In particolare ci si limita ai 3 pacchetti strettamente necessari allo svolgimento del corso che sono

Installazione dell'interprete (versione 3.2.3)

Per prima cosa installare l'interprete Python.
In questo corso useremo la versione 3.2.3 che puo' essere scaricata al link qui sotto.

http://www.python.org/download/releases/3.2.3/

Numpy (librerie di base per calcolo numerico)

Le numpy per python 3.2 e windows si trovano qui:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

in particolare scegliere la versione per python 3.2 e win 32
numpy-MKL-1.6.2.win32-py3.2.exe

e' possibile testare la installazione del pacchetto aprendo una shell di python e quindi digitando nella finestra dell'interprete:

In [1]:
#import numpy
#numpy.test()

matplotlib (librerie per la grafica 2D)

Scaricare il pacchetto autoinstallante qui:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib

in particolare scegliere
matplotlib-1.2.0.win32-py3.2.exe

Installazione da sorgente

alcuni riferimenti utili:

Note sui pacchetti da installare per Linux

Debian (versione?)