# 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.

You could write a Unix shell script or Windows batch files for some of these tasks, but shell scripts are best at moving around files and changing text data, not well-suited for GUI applications or games. You could write a C/C++/Java program, but it can take a lot of development time to get even a first-draft program. Python is simpler to use, available on Windows, macOS, and Unix operating systems, and will help you get the job done more quickly.

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.