Strumenti Utente

Strumenti Sito


roberto.depietri:pub:python

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
roberto.depietri:pub:python [20/01/2014 09:34] – creata roberto.depietriroberto.depietri:pub:python [20/01/2014 11:17] (versione attuale) roberto.depietri
Linea 1: Linea 1:
 +====== Il linguaggio Python  ======
 +
 +Il linguaggio Python è stato concepito da Guido Van Rossum alla fine degli anni ‘80 come linguaggio per interfacciarsi al 
 +sistema operativo distribuito Amoeba di Tanenbaum. 
 +
 +Una sua caratteristica che lascia in un primo momento perplessi è che usa l'allineamento del testo come caratteristica
 +sintattica. Questa idea ha una storia che ha origine da una osservazione di Donald E. Knuth:
 +//**We will perhaps eventually be writing only small modules that are identified by name as they are used to build larger ones, so that devices like indentation, rather than delimiters, might become feasible for expressing local structure in the source language.**//
 +tratta da  "S//tructured Programming with go to Statements//" pubblicato in origine in "Computing Surveys", Volume 6 del Dicembre 1974
 +in una uscita speciale dedicata al "Programming".
 +
 +Ulteriori informazioni posso essere tratte dalle seguenti introduzione al linguaggio:  
 +
 +[[http://www.fis.unipr.it/dokuwiki/doku.php?id=roberto.alfieri:user:python-franchi | Tutorial di Enrico Franchi]]
 +
 +[[http://www.difest.unipr.it/home/roberto.alfieri/didattica/matdid/calcolo_parallelo/cineca/Python/python_sc_introduction.pdf | Introduzione a Python]] (Simone Campagna, CINECA)
 +
 +
 +[[http://www.difest.unipr.it/home/roberto.alfieri/didattica/matdid/calcolo_parallelo/cineca/Python/python_sc_standard_library.pdf | Standard Library di Python ]] (Simone Campagna, CINECA)
 +
 +
 +Per una rapida introduzione e verifica di come usare il linguaggio python in ambito scientifico è disponibile presso
 +il DiFeST una macchina virtuale (Ubuntu 12.04.3 LTS) in cui è installata una distribuzione quasi completa di python e delle estensioni 
 +necessarie (utili) al calcolo in ambiente scientifico
 +
 +    ssh -X  -l roberto.depietri@ubuntu-didattica.fis.unipr.it
 +
 +in cui è disponibile un interfaccia iterativa al linguaggio: "ipython" (interactive-python). Il modo più semplice
 +per usare il linguaggio in ambito scientifico è attraverso il comando 
 +
 +    > ipython --pylab
 +
 +che fornisce una shell interativa in cui dare i vari comandi da dare all'interprete. Come vedremo il linguaggio
 +python non nasce in ambito scientifico e quindi un suo uso per il nostro scopo di effettuare calcoli scientifici 
 +necessita di caricare estensioni "scientifiche". Infatti se chiediamo al sistema cosa fa "ipython --pylab" 
 +questo ci dice:
 +
 +    > man iphthon
 +      ...
 +      --pylab
 +              Pre-load matplotlib and  numpy  for  interactive  use  with  the
 +              default matplotlib backend.
 +      …
 +
 +ovvero partiremo con l'interfaccia iterativa a python con precariate le estensioni:
 +
 +  * [[http://www.numpy.org|numpy]]  che definisce: array N-dimensionali, algebra lineare, trasformate di Fourier, . . .
 +  * [[http://matplotlib.org|matplotlib]] una libreria per disegnare figure con qualità pronte per la pubblicazione.
 +
 +Altra estensione (ormai di ampio uso) estremamente utile in ambito scientifico è fornita da
 +
 +  * [[http://scipy.org|sciy]] libreria di metodi matematici pronti per l'uso.
 +
 +Queste estensioni ci permetto di usare il linguaggio python per le nostre esigenze di calcolo 
 +scientifico in modo rapido sia in modo iterativo che per realizzare semplici programmi
 +di trattamento dei dati sperimentali o la generazione delle figure necessarie per la
 +loro presentazione. 
 +
 +Ad esempio:
 +
 +    $ ipython --pylab
 +    
 +    Python 2.7.4 (default, Apr 19 2013, 18:28:01)
 +    Type "copyright", "credits" or "license" for more information.
 +    
 +    IPython 0.13.2 -- An enhanced Interactive Python.
 +    ?         -> Introduction and overview of IPython's features.
 +    %quickref -> Quick reference.
 +    help      -> Python's own help system.
 +    object?   -> Details about 'object', use 'object??' for extra details.
 +    
 +    Welcome to pylab, a matplotlib-based Python environment [backend: Agg].
 +    For more information, type 'help(pylab)'.
 +    
 +    In [1]: from scipy import special, optimize
 +    In [2]: f = lambda x: -special.jv(3, x)
 +    In [3]: xmin,fmin,t1,t2,t3=optimize.fmin(f, 1.0,full_output=True)
 +    In [4]: x = linspace(0, 10, 5000)
 +    In [5]: x
 +    Out[5]:
 +    array([  0.00000000e+00,   2.00040008e-03,   4.00080016e-03, ...,
 +             9.99599920e+00,   9.99799960e+00,   1.00000000e+01])
 +    In [6]: plot(x, special.jv(3, x), '-', xmin, -fmin, 'o')
 +    In [7]: savefig('plot.png', dpi=96)
 +    In [8]: quit
 +    
 +    $ display plot.png
 +
 +A questo punto ci siamo fatti un idea delle potenzialità di python per soddisfare
 +molte delle nostre necessità nel calcolo scientifico. 
 +
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki