Accademia:Introduzione a Python: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
=Introduzione a Python=
=Introduzione a Python=
Perché innanzitutto il nome Python? Questo fu un tributo del suo creatore al suoi comici preferiti, i [[http://en.wikipedia.org/wiki/Monty_Python|Monty_Python]]. Prima di iniziare ad entrare nel vivo della lezione ecco un breve intermezzo, "La nascita dello spam":
Perché innanzitutto il nome Python? Questo fu un tributo del suo creatore al suoi comici preferiti, i [http://en.wikipedia.org/wiki/Monty_Python Monty_Python]. Prima di iniziare ad entrare nel vivo della lezione ecco un breve intermezzo, "La nascita dello spam":


http://www.youtube.com/watch?v=anwy2MPT5RE
[http://www.youtube.com/embed/anwy2MPT5RE VIDEO: la nascita dello SPAM]




Come definireste Python? La pagina di [[http://it.wikipedia.org/wiki/Python|Wikipedia]] elenca alcune delle sue peculiarità che meglio lo contraddistinguono e ne spiegano l'enorme successo:
Come definireste Python? La pagina di [http://it.wikipedia.org/wiki/Python Wikipedia] elenca alcune delle sue peculiarità che meglio lo contraddistinguono e ne spiegano l'enorme successo:
* linguaggio di programmazione di altissimo livello
* linguaggio di programmazione di altissimo livello
* linguaggio di programmazione multi-paradigma
* linguaggio di programmazione multi-paradigma
Riga 16: Riga 16:
Un linguaggio è tanto più "di alto livello" quando più la sintassi è simile al linguaggio umano (e tanto più si allontana dal linguaggio macchina). Python ha una sintassi estremamente semplice, molto simile a "scrivere in inglese".
Un linguaggio è tanto più "di alto livello" quando più la sintassi è simile al linguaggio umano (e tanto più si allontana dal linguaggio macchina). Python ha una sintassi estremamente semplice, molto simile a "scrivere in inglese".


È multi-paradigma. Sebbene in Python, sotto il cofano, tutto sia un oggetto, sia la [[http://it.wikipedia.org/wiki/Programmazione_strutturata|programmazione strutturata]] (come in C, in molti dialetti BASIC, in Pascal, ecc.) sia quella [[http://it.wikipedia.org/wiki/Programmazione_orientata_agli_oggetti|orientata agli oggetti]] (come in C++, Java, ecc.) sono del tutto naturali.
È multi-paradigma. Sebbene in Python, sotto il cofano, tutto sia un oggetto, sia la [http://it.wikipedia.org/wiki/Programmazione_strutturata programmazione strutturata] (come in C, in molti dialetti BASIC, in Pascal, ecc.) sia quella [http://it.wikipedia.org/wiki/Programmazione_orientata_agli_oggetti orientata agli oggetti] (come in C++, Java, ecc.) sono del tutto naturali.


Si tratta di un linguaggio polivalente, non specializzato per alcun compito preciso. Il Python può infatti essere utilizzato nei contesti più disparati, per fare sostanzialmente qualsiasi cosa.
Si tratta di un linguaggio polivalente, non specializzato per alcun compito preciso. Il Python può infatti essere utilizzato nei contesti più disparati, per fare sostanzialmente qualsiasi cosa.
Riga 22: Riga 22:
Multi-piattaforma significa che un programma scritto in Python gira nativamente su tutti i principali sistemi operativi: GNU/Linux, Mac OS, Windows, ecc. Si scrive una sola volta, si esegue ovunque. Essendo sostanzialmente un linguaggio interpretato (anche se tecnicamente non è così), non è necessario neppure fornire gli eseguibili per ciascuna piattaforma: è sufficiente il sorgente, che funziona dappertutto.
Multi-piattaforma significa che un programma scritto in Python gira nativamente su tutti i principali sistemi operativi: GNU/Linux, Mac OS, Windows, ecc. Si scrive una sola volta, si esegue ovunque. Essendo sostanzialmente un linguaggio interpretato (anche se tecnicamente non è così), non è necessario neppure fornire gli eseguibili per ciascuna piattaforma: è sufficiente il sorgente, che funziona dappertutto.


In effetti l'ultimo punto non è del tutto corretto. Il Python viene spesso definito come un [[http://it.wikipedia.org/wiki/Interprete_(informatica)|linguaggio interpretato]]. In realtà ciò non è vero, ma dal punto di vista del programmatore è come se lo fosse. Senza dover trafficare con i compilatori, lo sviluppo e il debug sono molto più semplici e veloci.
In effetti l'ultimo punto non è del tutto corretto. Il Python viene spesso definito come un [http://it.wikipedia.org/wiki/Interprete_(informatica) linguaggio interpretato]. In realtà ciò non è vero, ma dal punto di vista del programmatore è come se lo fosse. Senza dover trafficare con i compilatori, lo sviluppo e il debug sono molto più semplici e veloci.
 


=Installazione=
=Installazione=
Riga 28: Riga 29:


L'installazione è del tutto banale:
L'installazione è del tutto banale:
{{{# aptitude install python3}}}
<code># aptitude install python3</code>


Si tenga presente che il Python 3 così installato non interferisce minimamente con Python 2.6, che rimane la versione eseguita di default. Si può dunque installare l'interprete che useremo nelle nostre lezioni senza alcuna preoccupazione.
Si tenga presente che il Python 3 così installato non interferisce minimamente con Python 2.6, che rimane la versione eseguita di default. Si può dunque installare l'interprete che useremo nelle nostre lezioni senza alcuna preoccupazione.
Riga 34: Riga 35:
=Come utilizzare Python=
=Come utilizzare Python=
Se da terminale invocate Python, entrate nella modalità interattiva:
Se da terminale invocate Python, entrate nella modalità interattiva:
{{{$ python3
<code>$ python3
Python 3.1.3 (r313:86834, Nov 28 2010, 10:01:07)  
Python 3.1.3 (r313:86834, Nov 28 2010, 10:01:07)  
GCC 4.4.5 on linux2
GCC 4.4.5 on linux2
Type "help", "copyright", "credits" or "license" for more information.
Type "help", "copyright", "credits" or "license" for more information.
>>>  
>>>  
}}}
</code>
Questo è ottimo per eseguire piccoli test e verificare immediatamente il funzionamento di alcuni comandi.
Questo è ottimo per eseguire piccoli test e verificare immediatamente il funzionamento di alcuni comandi.


Digitiamo nel prompt:
Digitiamo nel prompt:
{{{>>> 2+1
<code>>>> 2+1
}}}
</code>
e osserviamo il risultato.
e osserviamo il risultato.


Proviamo ora:
Proviamo ora:
{{{>>> name = "Pippo"
<code>>>> name = "Pippo"
>>> name
>>> name
}}}
</code>


Per chiudere la shell invocare la funzione di uscita {{{exit()}}} o, più semplicemente, premere Ctrl+D.
Per chiudere la shell invocare la funzione di uscita <tt>exit()</tt> o, più semplicemente, premere ''Ctrl+D''.


Anticipiamo ora un argomento che verrà affrontato in dettaglio più avanti: i //moduli//. I moduli in Python sono file di testo puro contenente codice Python, con estensione {{{.py}}}. Uno [[http://it.wikipedia.org/wiki/Script | script]] in Python sarà dunque un listato raccolto in un file {{{.py}}}, che esegue un compito preciso.
Anticipiamo ora un argomento che verrà affrontato in dettaglio più avanti: i //moduli//. I moduli in Python sono file di testo puro contenente codice Python, con estensione ''.py''. Uno [http://it.wikipedia.org/wiki/Script script] in Python sarà dunque un listato raccolto in un file ''.py'', che esegue un compito preciso.


Creiamo ora uno script basilare come il seguente e salviamolo come hello.py:
Creiamo ora uno script basilare come il seguente e salviamolo come hello.py:
{{{name = input("Come ti chiami? \n > ")
<code>name = input("Come ti chiami? \n > ")
print("Ciao %s, buon inizio corso!" % name)}}}
print("Ciao %s, buon inizio corso!" % name)</code>


Il file appena creato, pur non essendo eseguibile, potrà essere comunque eseguito con il seguente comando:
Il file appena creato, pur non essendo eseguibile, potrà essere comunque eseguito con il seguente comando:
{{{python3 hello.py}}}
<code>python3 hello.py</code>


Per rendere lo script autoeseguibile è necessario, oltre a rendere lo script eseguibile, specificare il programma con il quale eseguirlo. Questo è possibile inserendo alla prima riga dello script, analogamente a quanto si fa ad esempio per Bash, il codice:
Per rendere lo script autoeseguibile è necessario, oltre a rendere lo script eseguibile, specificare il programma con il quale eseguirlo. Questo è possibile inserendo alla prima riga dello script, analogamente a quanto si fa ad esempio per Bash, il codice:
{{{#!/usr/bin/env python3}}}
<code>#!/usr/bin/env python3</code>


Nota bene: Python 3 [[http://docs.python.org/py3k/tutorial/interpreter.html#source-code-encoding|utilizza di default la codifica UTF-8]]. È però buona regola evitare di inserire nei sorgenti caratteri non presenti nella tabella ASCII, come ad esempio le lettere accentate.
Nota bene: Python 3 [http://docs.python.org/py3k/tutorial/interpreter.html#source-code-encoding utilizza di default la codifica UTF-8]. È però buona regola evitare di inserire nei sorgenti caratteri non presenti nella tabella ASCII, come ad esempio le lettere accentate.


Rendiamo quindi lo script eseguibile:
Rendiamo quindi lo script eseguibile:
{{{chmod u+x hello.py}}}
<code>chmod u+x hello.py</code>
ed eseguiamolo:
ed eseguiamolo:
{{{./hello.py
<code>./hello.py
Come ti chiami?  
Come ti chiami?  
  > Riccardo
  > Riccardo
Ciao Riccardo, buon inizio corso!}}}
Ciao Riccardo, buon inizio corso!</code>


==Cofigurare Geany==
==Cofigurare Geany==
909

contributi