Introduzione a Python

Python è un linguaggio di programmazione portabile, interpretato, object-oriented. Il suo sviluppo iniziò nel 1990 al CWI di Amsterdam, e continua al CNRI a Reston, Virginia. Il linguaggio ha una sintassi elegante (ma non sovra-semplificata), e comprende un piccolo numero di potenti tipi dati di alto livello. Python può essere esteso sistematicamente aggiungendo nuovi moduli, implementati in un linguaggio compilato come C o C++; i moduli di estensione possono definire nuove funzioni e variabili, oltre a nuovi tipi di oggetti.

Ecco una semplice funzione scritta in Python, che inverte una tabella (rappresentata come dizionario Python):

def inverti(tabella):
    indice = {}                       # dizionario vuoto
    for chiave in tabella.keys():
        valore = tabella[chiave]
        if indice.has_key(valore):
            indice[valore].append(chiave)
	else:
            indice[valore] = [chiave] # lista con 1 solo elemento
    return indice

Nota che Python usa il rientro per raggruppare le istruzioni. I commenti iniziano con un carattere di '#'.

Ecco un esempio di uso interattivo di questa funzione (">>> " è il prompt dell'interprete):

>>> rubrica = {'guido': 4127, 'sjoerd': 4127, 'jack': 4098}
>>> rubrica['dcab'] = 4147             # aggiunge una voce
>>> rubrica_inversa = inverti(rubrica)
>>> print rubrica_inversa
{4098: ['jack'], 4127: ['guido', 'sjoerd'], 4147: ['dcab']}
>>> 

Python ha un ricco insieme di operazioni su stringhe (comprese le espressioni regolari), e libera il programmatore dai problemi di gestione della memoria. Queste ed altre caratteristiche lo rendono un linguaggio ideale per lo sviluppo di prototipi ed altri compiti di programmazione ad hoc.

Python ha anche alcune caratteristiche che rendono possibile scrivere grandi programmi, benchè non abbia la maggior parte delle forme di controllo a tempo di compilazione: un programma può essere costituito da vari moduli, ciascuno dei quali definisce il proprio spazio dei nomi, e i moduli possono definire classi che forniscono ulteriore incapsulamento. La gestione delle eccezioni rende possibile intrappolare gli errori, quando necessario, senza complicare tutto il codice con i controlli di errore.

Per Python è stato sviluppato un gran numero di moduli di estensione. Alcuni fanno parte della libreria standard, usabile in qualsiasi programma Python (ad esempio, la libreria matematica e le espressioni regolari). Altri sono specifici di una particolare piattaforma o ambiente (ad esempio Windows, le reti IP, o X11) o forniscono funzionalità specifiche di una applicazione (ad esempio elaborazione dei suoni o delle immagini).

Python fornisce anche possibilità introspettive, cosicchè ad esempio un debugger o profiler per programmi Python può essere scritto a sua volta in Python. C'è anche un modo generico di convertire un oggetto in un flusso di byte e viceversa, che può essere usato per implementare la persistenza degli oggetti e vari modelli a oggetti distribuiti.

Vuoi saperne di più?

Visita www.python.org, soprattutto la ricca documentazione.