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.
