Linguaggio di programmazione Python

Autore:[Antonio Gallonetto]

Python è un linguaggio di programmazione a tipizzazione dinamica “semi interpretato”, facilmente estendibile, orientato agli oggetti e che può essere usato anche per la programmazione funzionale. Quindi possiamo utilizzare più di un paradigma per la programmazione sia quella ad oggetti che quella funzionale, anche se il linguaggio nasce per la programmazione ad oggetti.

Uso del linguaggio

E' un linguaggio che è usato fortemente per la prototipazione del software, oppure per estendere le funzionalità di alcuni programmi, ad esempio gimp. Questo perché è facile da usare, ha un milione di librerie già pronte in grado di fare qualsiasi cosa.

Tipizzazione dinamica

Una cosa particolare del python è la tipizzazione dinamica. In sostanza il tipo delle variabili è determinato in fase di esecuzione piuttosto che in fase di compilazione. Normalmente in un linguaggio quale pascal, c, c++, quando dichiariamo la variabile dichiariamo anche il suo tipo. Il compilatore verificherà che ci sia congruenza tra le variabili, tipi ed assegnazione. Ad esempio se andiamo ad assegnare ad una variabile che è di tipo stringa un valore, il compilatore andrà a generare un errore, visto che non c’è congruenza tra le variabili.

Esempio di codice python consentito:

my_string = input("Inserisci un testo del quale vuoi calcolare la lunghezza:   ")
print(len(str(my_string)))
my_string= 5
print(my_string)

In questo caso vado ad assegnare a my_string una stringa, e andiamo a stamparne la lunghezza. Notare che len ritorna un numero che è la dimensione dell’oggetto my_string. Print è in grado di convertire automaticamente il numero in una stringa da stampare. Successivamente all’oggetto stringa associo il valore intero 5, prima gli avevo associato una stringa e print ancora correttamente converte e stampa il valore 5. Questa è la tipizzazione dinamica. Molto comoda, ma io preferisco la tipizzazione statica, perché costringe il programmatore ad essere molto preciso nella dichiarazione delle variabili, e nel tempo questo porta ad evitare molti errori e il codice risulta essere più chiaro e il debug molto più facile.

Semi Interpretato

Guido Van Rossum il creatore del linguaggio lo definisce un linguaggio interpretato. Qui però trovate la dicitura semi interpretato.

Se si fa una ricerca in internet si trovano intense discussioni se python sia un linguaggio interpretato o compilato. Alla fine molti dicono una via di mezzo. Questo perché alla prima esecuzione Python genera del bytecode intermedio, delle istruzioni che non sono direttamente eseguibili dal calcolatore su cui sta girando python e neanche comprensibili dall’umano che ha prodotto il codice, e questo è un processo tipico della compilazione.

A mio parere python è un linguaggio interpretato, semplicemente perché se non ho a disposizione l’interprete python del bytecode intermedio non posso farmene nulla. E' vero in ogni caso che utilizza una parte del processo di compilazione, ma non genera sicuramente codice eseguibile finito.

Guido Van Rossum

E' il creatore di python. Ha iniziato lo sviluppo di questo linguaggio nel gennaio del 1994.

Librerie, framework come estensioni di python

Qualsiasi cosa ci venga in mente di sviluppare, probabilmente troveremo un bel po' di lavoro già fatto, con degli utensili belli e pronti per essere usati.
Andiamo dal calcolo scientifico, al gioco, all’interfaccia grafica, alla gestione del sistema.

Versione 2 e versione 3

Nel passaggio alla versione tre dalla versione 2 di python è cambiata la sintassi. Per questo motivo procedono sia le versioni della 2 che della 3. Anche se ormai la tre è stata recepita completamente.

Python e Raspberry pi

Raspberry pi è un mini computer estremamente economico sviluppato dalla Raspberry pi foundation, progetto iniziato da Eben Upton per dare la possibilità a tutti di avere un computer. Utilizza come sistema operativo una versione speciale di Linux, BSD, Windows, e il suo naturale linguaggio di sviluppo è python.

Python e i bambini

Scratch è uno strumento creativo di programmazione visuale, con base python, che permette in modo molto facile a tutti compresi i più giovani di creare del software utile ad esprimersi, studiare e giocare. Ci sono interessanti integrazioni tra scratch e raspberry pi.

Multipiattaforma e opensource

E' un progetto opensource e gira praticamente ovunque.

Riferimenti utili