# 1. Stuzzichiamo il tuo appetito

Se si fa molto lavoro sui computer, alla fine si scopre che c’è qualche compito che si desidera automatizzare. Ad esempio, è possibile eseguire un “ricerca e sostituisci” su un gran numero di file di testo, oppure rinominare e riorganizzare un gruppo di file di foto in modo complesso. Magari vi piacerebbe scrivere un piccolo database personalizzato, o un’applicazione GUI specializzata, o un semplice gioco.

Se sei uno sviluppatore di software professionista, potresti dover lavorare con diverse librerie C/C+++/Java, ma il solito ciclo di scrittura/compilazione/test/ricompilazione è troppo lento. Forse stai scrivendo una suite di test per una libreria di questo tipo e credi che la scrittura del codice di test sia un compito noioso. O forse avete scritto un programma che potrebbe utilizzare una libreria che usa un proprio linguaggio di programmazione, e non volete progettare e implementare un linguaggio completamente nuovo per la vostra applicazione.

Python è il linguaggio che fa per te.

Si potrebbe scrivere uno script di shell Unix o file batch di Windows per alcune di queste attività, tuttavia se è vero che gli script di shell sono i migliori per spostarsi tra i file o modificare i file di testo, non sono adatti per applicazioni GUI o giochi. Si potrebbe scrivere un programma C/C+++/Java, ma può essere necessario molto tempo di sviluppo per ottenere anche solo una prima bozza di programma. Python è più semplice da usare, disponibile su Windows, Mac OS X e Unix, e vi aiuterà a svolgere il lavoro più rapidamente.

Python è semplice da usare, ma è un vero e proprio linguaggio di programmazione, che offre una struttura e un supporto per programmi di grandi dimensioni molto più di quanto possano offrire script di shell o file batch. D’altra parte, Python offre anche molto più controllo degli errori di C e, essendo un linguaggio di altissimo livello, ha tipi di dati di alto livello integrati, come array flessibili e dizionari. A causa dei suoi tipi di dati più generali, Python è applicabile ad un dominio molto più grande di Awk o anche di Perl, ma molte cose sono almeno altrettanto facili in Python come in quei linguaggi.

Python permette di suddividere il programma in moduli che possono essere riutilizzati in altri programmi Python. Viene fornito con una vasta collezione di moduli standard che potete usare come base dei vostri programmi — o come esempi per iniziare ad imparare a programmare in Python. Alcuni di questi moduli forniscono cose come I/O di file, chiamate di sistema, socket e persino strumenti per lo sviluppo di interfacce grafiche utente come Tk.

Python è un linguaggio interpretato, che può farvi risparmiare molto tempo durante lo sviluppo del programma perché non è necessaria alcuna compilazione e linking. L’interprete può essere usato in modo interattivo, il che rende facile sperimentare con le caratteristiche del linguaggio, scrivere programmi usa e getta o testare le funzioni durante lo sviluppo del programma dal basso verso l’alto. È anche una pratica calcolatrice da tavolo.

Python consente di scrivere programmi in modo compatto e leggibile. I programmi scritti in Python sono in genere molto più brevi dei programmi equivalenti in C, C+++ o Java, per diversi motivi:

- i tipi di dati di alto livello consentono di esprimere operazioni complesse in un’unica dichiarazione;

- il raggruppamento delle istruzioni è fatto usando l’indentazione invece che per parentesi iniziali e finali;

- non sono necessarie dichiarazioni di variabili o argomenti.

Python è estensibile: se si conosce la programmazione in C è facile aggiungere una nuova funzione o un modulo all’interprete, sia per eseguire operazioni critiche alla massima velocità, sia per collegare programmi Python a librerie che possono essere disponibili solo in forma di eseguibili binari (come una libreria grafica fornita da un fornitore). Una volta che ci si è fatto il callo, è possibile anche collegare l’interprete Python ad un’applicazione scritta in C e usarlo come un’estensione o come linguaggio per impartire comandi a quell’applicazione.

A proposito, la lingua prende il nome dallo show della BBC «Monty Python’s Flying Circus» e non ha nulla a che fare con i rettili. Fare riferimento agli schetch Monty Python nella documentazione non solo è permesso, ma è incoraggiato!

Ora che siete tutti entusiasti di Python, vorrete esaminarlo più in dettaglio. Poiché il modo migliore per imparare un linguaggio è usarlo, il tutorial vi invita a giocare con l’interprete Python mentre lo leggete.

Nel capitolo successivo vengono spiegate le modalità di utilizzo dell’interprete. Si tratta di informazioni piuttosto banali, ma essenziali per provare gli esempi mostrati in seguito.

Il resto del tutorial introduce varie caratteristiche del linguaggio e del sistema Python attraverso esempi, iniziando con semplici espressioni, comandi e tipi di dati, attraverso funzioni e moduli, e infine toccando concetti avanzati come eccezioni e classi definite dall’utente.