Il motivo del successo di Python è da ricercare nella sua versatilità, facilità di sviluppo e apprendimento, e al contempo, potenza di programmazione. Python è un linguaggio di programmazione di alto livello, interpretato, orientato agli oggetti e con una semantica dinamica, adatto allo sviluppo rapido di applicazioni.
La sintassi semplice e facile da apprendere enfatizza la leggibilità e riduce il costo di mantenimento dei programmi. Moduli e package incoraggiano la programmazione modulare e il riutilizzo del codice. Inoltre, l’interprete Python e l’estesa libreria standard sono disponibili sia come sorgente che in forma binaria e possono essere distribuiti liberamente.
Python può essere utilizzato per automatizzare attività, eseguire calcoli, creare interfacce utente, backend di siti Web, accedere a database, scaricare informazioni da Internet, ecc. È un linguaggio facile da imparare e da scrivere: perfetto per i programmatori principianti, ma altrettanto utile per i professionisti esperti. Ma partiamo dalle basi.
-
1. La sintassi in Python
Shutterstock
Bello è meglio di brutto.
Esplicito è meglio di implicito.
Semplice è meglio di complesso.
Complesso è meglio di complicato.
La leggibilità è importante.
Questi cinque principi, presi da Lo Zen di Python, una raccolta di 20 aforismi divulgati da Tim Peters che hanno influenzato e continuano ad influenzare lo sviluppo del linguaggio, fanno capire quanto in Python la forma sia importante tanto quanto la sintassi.
Nei linguaggi di programmazione, con “sintassi” ci si riferisce alle regole che specificano la corretta sequenza combinata di simboli che possono essere utilizzati per formare un programma strutturato correttamente.
-
2. Identificatori
Trismegist san / Shutterstock.com
I nomi utilizzati per identificare variabili, funzioni, classi e moduli devono iniziare con una lettera o con un trattino basso (_), possono poi contenere lettere, cifre e caratteri di sottolineatura.
Python è un linguaggio di programmazione case sensitive, nel senso che i caratteri maiuscoli e minuscoli sono considerati come lettere differenti. Quindi, "test" e "Test" vengono interpretate in modo diverso.
In Python ci sono delle convenzioni relative alla denominazione degli identificatori:
- I nomi delle classi iniziano con una lettera maiuscola, tutti gli altri con una lettera minuscola;
- Un identificatore che inizia con un trattino basso indica che si tratta di un identificatore privato;
- Un identificatore che inizia con due trattini bassi indica che si tratta di un identificatore fortemente privato;
- Se l’identificatore inizia e finisce con due trattini bassi allora è un nome speciale definito nel linguaggio.
-
3. Indentazione
Shutterstock
Una delle peculiarità di Python riguarda il fatto che per delimitare i blocchi di codice, al posto di utilizzare le comuni parentesi, si utilizza l’indentazione. I caratteri di spaziatura presenti all'inizio di una riga logica determinano il livello di indentazione della riga e quindi, il raggruppamento delle istruzioni a cui questa appartiene. La priorità logica delle operazioni da eseguire è determinata dal numero di spazi presenti all'inizio della riga contenente il comando.
Sbagliare l’indentazione genera un IndentationError, e stando alle indicazioni fornite dalle linee guida, l’indentazione va fatta utilizzando 4 spazi.
-
4. Istruzioni multilinea
Shutterstock
In Python ogni comando si scrive su una singola riga e non necessita di particolari caratteri di termine (altri linguaggi necessitano, per esempio del punto e virgola).
L’interprete considera ogni riga come un’istruzione intera; tuttavia, è possibile usare una barra rovesciata (backslash) oppure virgolette triple per indicare esplicitamente che l’istruzione continua anche sulla linea successiva.
Le istruzioni contenute nelle parentesi [], {} o () non necessitano di alcun carattere per continuare sulle righe successive.
-
5. Virgolette
Shutterstock
Le virgolette, o apici, servono per definire stringhe di caratteri. Python accetta indistintamente virgolette singole (‘), doppie (“), basta che si utilizzino le stesse per l’inizio e la fine della stringa. Inoltre, come visto sopra, le virgolette triple (‘’’ o “””) vengono utilizzate per definire una stringa su più righe.
-
6. Commenti e documentazione
Shutterstock
Prima di scrivere un nuovo pezzo di codice, è buona norma scrivere una o due righe che descrivono cosa fa. I commenti si scrivono facendoli precedere da uncancelletto (#) che non fa parte della stringa letterale e termina alla fine della riga fisica. Tutti i caratteri dopo il cancelletto fino alla fine della riga fanno parte del commento e l'interprete Python li ignora.
I commenti vanno scritti sullo stesso livello di indentazione del codice che si sta commentando. È meglio evitare i commenti sulla stessa linea del codice.
Le docstring sono simili ai commenti ma, a differenza di questi, sono più specifiche. Inoltre, vengono conservate in fase di esecuzione così che il programmatore possa ispezionarle. Una docstring inizia e finisce con tre virgolette singole o doppie.
-
7. Variabili
aleksei_u / Shutterstock.com
Un’altra caratteristica di Python è la tipizzazione dinamica delle variabili, nel senso che non devono essere dichiarate in anticipo, ma solo al momento dell'esecuzione del codice appena scritto, in runtime. Python non ha alcun comando per dichiarare una variabile che viene creata nel momento in cui le si assegna per la prima volta un valore.
Le variabili possono cambiare tipo dopo che sono state impostate semplicemente assegnandogli un differente valore.
Il casting in programmazione è la conversione di un dato da un tipo ad un altro. Potremmo avere una variabile a cui è assegnato il valore “123”, anche se sembra un numero, come suggeriscono le virgolette, in realtà si tratta di una stringa.
Se volessi trattare questo "123" come un numero, e sommargliene un altro, dovrei prima trasformarlo in un intero. Per convertire in intero una stringa, o un float, si utilizza la funzione int().
C’è una funzione di casting per ogni tipo di dato, molto usate sono, ad esempio, str(), float(), list() o dict().
È possibile ottenere il tipo di dati di una variabile con la funzione type().
Per saperne di più: Cosa si può fare con Python