Accademia:Introduzione a Python: differenze tra le versioni
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 | 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/ | [http://www.youtube.com/embed/anwy2MPT5RE VIDEO: la nascita dello SPAM] | ||
Come definireste Python? La pagina di | 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 | È 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 | 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: | ||
<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: | ||
<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: | ||
<code>>>> 2+1 | |||
</code> | |||
e osserviamo il risultato. | e osserviamo il risultato. | ||
Proviamo ora: | Proviamo ora: | ||
<code>>>> name = "Pippo" | |||
>>> name | >>> name | ||
</code> | |||
Per chiudere la shell invocare la funzione di uscita | 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 | 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: | ||
<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: | ||
<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: | ||
<code>#!/usr/bin/env python3</code> | |||
Nota bene: Python 3 | 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: | ||
<code>chmod u+x hello.py</code> | |||
ed eseguiamolo: | ed eseguiamolo: | ||
<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== |
Versione delle 11:04, 9 feb 2011
Introduzione a Python
Perché innanzitutto il nome Python? Questo fu un tributo del suo creatore al suoi comici preferiti, i Monty_Python. Prima di iniziare ad entrare nel vivo della lezione ecco un breve intermezzo, "La nascita dello spam":
Come definireste Python? La pagina di 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 multi-paradigma
- linguaggio polivalente
- linguaggio multi-piattaforma
- linguaggio non compilato
Soffermiamoci un momento sui vari punti.
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 programmazione strutturata (come in C, in molti dialetti BASIC, in Pascal, ecc.) sia quella 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.
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 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
In questo corso useremo come sistema operativo di riferimento Debian Squeeze, che tra poche ore diventerà la nuova versione stabile del nostro sistema operativo preferito.
L'installazione è del tutto banale:
# aptitude install python3
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.
Come utilizzare Python
Se da terminale invocate Python, entrate nella modalità interattiva:
$ python3
Python 3.1.3 (r313:86834, Nov 28 2010, 10:01:07)
GCC 4.4.5 on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Questo è ottimo per eseguire piccoli test e verificare immediatamente il funzionamento di alcuni comandi.
Digitiamo nel prompt:
>>> 2+1
e osserviamo il risultato.
Proviamo ora:
>>> name = "Pippo"
>>> name
Per chiudere la shell invocare la funzione di uscita exit() 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 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:
name = input("Come ti chiami? \n > ")
print("Ciao %s, buon inizio corso!" % name)
Il file appena creato, pur non essendo eseguibile, potrà essere comunque eseguito con il seguente comando:
python3 hello.py
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
Nota bene: Python 3 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:
chmod u+x hello.py
ed eseguiamolo:
./hello.py
Come ti chiami?
> Riccardo
Ciao Riccardo, buon inizio corso!
Cofigurare Geany
Esistono molti editor e ognuno è libero di scegliere quello che più lo aggrada, chi punta alla semplicità, chi alla completezza, chi alla comodità ecc.. Io personalmente ne cercavo uno semplice, gratuito e magari con un terminale integrato, senza dover passare sempre da una finestra all'altra. Così ho scelto Geany. Configurarlo per i nostri scopi è semplice,
- se non volete usare xterm, ovvero un interprete dei comandi virtuale e preferite il nostro fidato terminale, inserite in
Modifica -> Preferenze -> Strumenti -> terminale -> gnome-terminal dove gnome-terminal stà per il comando che esegue il vostro terminale preferito, altrimenti lasciate xterm
- invece è fondamentale indicare python3.1 come interprete :
Genera -> Set Build Commands -> Execute Commands e inserite //python3.1 "%f"// nella cella del comando
Ora potrete lavorare comodamente da qui, cliccando su esegui ogni volta che vorrete provare lo script, partirà in automatico il terminale da voi impostato.