Caratteristiche del linguaggio

Interpretato, ma con produzione di "bytecode".

Il linguaggio e' interpretato, ovvero tradotto in linguaggio macchina una istruzione per volta, tipo la shell di Unix, e' quindi un linguaggio che puo' essere usato in modo interattivo, ma inefficiente dal punto di vista del calcolo. Un programma Python puo' anche essere messo in un file, ed eseguito, come un'unica procedura; durante la traduzione viene prodotto un "bytecode", ovvero una versione del programma semi compilata, posta in un file con estensione "pyc". Se il programma viene eseguito una seconda volta, senza modifiche, si utilizza direttamente il byptecode, con un vantaggio in termini di prestazioni.

Sintassi semplice.

La sintassi e' semplice, ci sono pochi construtti e non c'e' bisogno di dichiarare il tipo delle variabili. Non ci sono puntatori, anche se tutte le variabili sono implementate con puntatori. Il Python si occupa di individuare il tipo di ogni variabile quando viene definita, e fa conversioni automatiche quando occorre.

Orientato agli oggetti.

Il Python ha un modo semplice ma efficace di definire e trattare classi, e praticamente tutti i tipi di dati sono oggetti. C'e' anche la possibilita' di definire "moduli": insieme di funzioni Python predefinite, conservate in un file, che possono essere riutilizzate, inserendole in programmi diversi, senza che ci sia confusione fra le variabili del programma e quelle dei moduli stessi.

Strutture complesse gia' implementate.

Il Python comprende una implementazione di strutture complesse, di uso comune in programmazione, come: liste, dizionari, tuple, stringhe. In Python queste sono trattate come tipi di dati e ci sono gia' funzioni per agire su di esse, come funzioni di ordinamento, di ricerca etc.

Facile integrazione con altri linguaggi.

C'e' la possibilita' di usare Python per legare insieme componenti sviluppate con altri linguaggi, tipo Java, C o C++. C'e' anche Jython, un compilatore che traduce un programma Python in un bytecode java.

Funzionalita' gia' pronte.

Python contiene una grande libreria di funzioni, inoltre si trovano in libera distribuzione moduli Python per fare moltissime cose: interfaccia con database, grafica , networking etc.

Caratteristiche peculiari.

Python ha diverse caratteristiche peculiari, proprie dei linguaggi moderni; come un sistema di "garbage collection", per liberare memoria inutilizzata, ed il "dynamic typing", cioe' il fatto che il tipo degli oggetti e' definito durante l'esecuzione del programma e non durante la compilazione. Questo permette di scrivere parti di programma in modo indipendente dal tipo di dato che in esso verra' utilizzato (polimorfismo). Inoltre puo' accedere alle strutture interne dei suoi oggetti; questa proprieta e' chiamata introspezione o reflection. Un programma Python puo' anche modificare se stesso a run-time (metaprogramming).

Uso

Python e' disponibile praticamente per tutte le architetture, ed incluso in tutte le distribuzioni di Linux. Si puo' usare in modo interattivo o mettere istruzioni pyhton in file ed eseguirlo. Ci sono anche tool grafici per creare programmi Python, come idle , oppure spyder

Esempio di Uso interattivo in Linux (dalla shell):

$ Python
>>> 3+2
5
>>> a=16
>>> a
16
>>> Cntrl/D per finire

Un file con un programma Python: file.py si esegue con:

$ Python   file.py

$ # per usare la versione 3, 
$ #  se non e' il default:
$ Python3  file.py  

In Unix un file eseguibile con, nella prima linea: #!/usr/bin/python Puo' essere eseguito direttamente come un comando.

Interfaccia grafica: idle

idle e' un'interfaccia grafica che rende disponibile una shell per eseguire programmi o singoli comandi, ed un editor per scrivere file con programmi Python. Integra anche un debugger.

idle.png

Esistono anche altre interfacce dedicate a Python;

spyder-midi.png