Python è un linguaggio di programmazione multi-paradigma e di alto livello adatto allo sviluppo rapido di applicazioni in svariati ambiti: dal web al desktop, dai videogiochi allo scripting di sistema. 

Ideato da Guido Van Rossum all’inizio degli anni Novanta in onore del programma televisivo della BBC "Monty Python's Flying Circus", Python si distingue dalle decine di linguaggi di programmazione esistenti per la versatilità e la somiglianza con l'inglese parlato. Inoltre, grazie alla vastissima community di sviluppatori, è molto facile trovare online esempi e consigli utili a completare i progetti con relativa facilità. 

I motivi del suo successo sono da ricercare nella proposta inviata a DARPA dal nome “Programmazione per tutti”, in cui lo sviluppatore olandese spiega l’essenza del suo linguaggio: doveva essere semplice, intuitivo e potente; open source; facilmente comprensibile, come un linguaggio naturale; permettere di programmare in pochi giorni e tempi di sviluppo brevi. Per questo, viene usato sia dai programmatori alle prime armi, che dalle più grandi aziende come Google, Facebook e YouTube.

  • 0. Python: i punti di forza del linguaggio

    Python su smartphone

    Trismegist san / Shutterstock

    Progettato affinché fosse semplice (da apprendere, utilizzare e capire) e strutturato con una sintassi semplice, chiara e lineare, Python è un linguaggio multi-paradigma, che supporta sia la programmazione procedurale (che fa uso delle funzioni), sia la programmazione ad oggetti (includendo funzionalità come l'ereditarietà singola e multipla, l'overloading degli operatori, e il duck typing). Inoltre, supporta diversi elementi della programmazione funzionale (come iteratori e generatori).

    Le caratteristiche più immediatamente riconoscibili di Python sono 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) e l'uso dell'indentazione per la sintassi delle specifiche, al posto delle più comuni parentesi.

    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.

    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 alto livello che è al tempo stesso semplice e potente. La sintassi e i diversi moduli e funzioni già inclusi nel linguaggio sono consistenti, intuitivi e facili da imparare, e il design del linguaggio si basa sul principio del least astonishment (cioè della "minor sorpresa": il comportamento del programma coincide con quanto ci si aspetta).

    Ogni installazione di Python include una standard library, vale a dire una collezione di oltre 200 moduli per svolgere i compiti più disparati, come l'interazione con il sistema operativo e il filesystem, o la gestione di diversi protocolli. Inoltre, il Python Package Index consente di scaricare ed installare migliaia di moduli aggiuntivi creati e mantenuti dalla comunità.

    La gestione della memoria e la conseguente pulizia è invece affidata ad un ciclo di controllo combinato tra reference counting (contatore delle referenze) e un garbage collector che si occupa automaticamente dell'allocazione e del rilascio della memoria. Questo consente al programmatore di usare variabili liberamente, senza doversi preoccupare di dichiararle e di allocare e rilasciare spazi di memoria manualmente (cosa che è invece necessaria in linguaggi di più basso livello come il C o il C++).

    Per approfondimento: La storia dei linguaggi di programmazione

  • 1. Un linguaggio open source, interpretato e portabile

    Python

    Shutterstock

    Python è completamente gratuito ed è possibile usarlo e distribuirlo senza restrizioni di copyright. Nonostante sia free, da oltre 25 anni Python ha una comunità molto attiva, e riceve costantemente miglioramenti che lo mantengono aggiornato e al passo con i tempi.

    Anche se Python è considerato un linguaggio interpretato, i programmi vengono automaticamente compilati in un formato chiamato bytecode prima di essere eseguiti. Questo formato è più compatto ed efficiente, e garantisce prestazioni elevate. Inoltre, diverse strutture dati, funzioni e moduli Python sono implementati internamente in C per essere ancora più performanti.

    Oltre all'interprete classico scritto in C (chiamato CPython), esistono altri interpreti che consentono l'integrazione con altri linguaggi. IronPython consente di utilizzare Python all'interno del framework .NET, di usarne le funzioni e di interagire con altri linguaggi .NET. Per poter invece integrare Python e Java è possibile utilizzare Jython. Esistono poi altri interpreti, come PyPy: un'implementazione altamente performante scritta in Python.

    Infine, è un linguaggio portabile sviluppato in ANSI C. È possibile usarlo su diverse piattaforme come: Unix, Linux, Windows, DOS, Macintosh, Sistemi Real Time, OS/2, cellulari Android e iOS. Ciò è possibile perché si tratta di un linguaggio interpretato, quindi lo stesso codice può essere eseguito su qualsiasi piattaforma purché abbia l’interprete Python installato.

  • 2. A cosa serve Python: le applicazioni

    python - programmazione

    Shutterstock

    Python può essere utilizzato per automatizzare attività, eseguire calcoli, creare interfacce utente (nota anche come GUI, dall'inglese Graphical User Interface), creare backend di siti Web, accedere a database, scaricare informazioni da Internet, ecc. È un linguaggio versatile, facile da imparare e da scrivere e, sebbene perfetto per i programmatori principianti, è altrettanto utile e potente per i professionisti esperti. 

    La dotazione standard e le librerie di terze parti arricchiscono Python con funzionalità che lo rendono duttile in svariati ambiti, anche quelli più tecnologicamente avanzati.

    Queste stesse caratteristiche rendono Python l’alleato perfetto per l’intelligenza artificiale permettendo di catturare idee complesse con poche righe di codice, impossibile con altri linguaggi. Librerie come “Keras” e “TensorFlow” contengono molte informazioni sulle funzionalità dell’apprendimento automatico. Ci sono poi librerie fornite da Python, ampiamente utilizzate negli algoritmi AI, come “Scikitl”: una libreria di apprendimento automatico gratuita che presenta numerosi algoritmi di regressione, classificazione e raggruppamento.

    L’uso di Python è molto diffuso nell’analisi dei dati e nell’estrazione di insight utili per le aziende, per questo viene utilizzato nel campo dei Big Data. È possibile installare moduli per interfacciarsi con altri database (PostgreSQL, Oracle, MySQL, e altri) e usufruire di librerie di elaborazione dati come “Pydoop”. Altre librerie come “Dask” e “Pyspark” semplificano ulteriormente l’analisi e la gestione degli stessi. Ulteriori funzionalità aiutano a generare informazioni in tempo reale e convertirle nei linguaggi utilizzati dai Big Data.

    Python è anche usato in ambito scientifico, perché si occupa di dati tabulari, a matrice e di dati statistici e li visualizza con librerie popolari come “Matplotlib” e “Seaborn”. Inoltre, Python è ideale per i framework di test, in quanto molti framework integrati aiutano il debug del codice e offrono flussi di lavoro ed esecuzione veloci. Strumenti di testing come “Unittest”, “Pytest” e “Nose Test” semplificano la produzione di testi ed essendo multipiattaforma utilizza browser con frame diversi, come “PyTest” e “Robot”.

    Per approfondimento: Intelligenza Artificiale, cos'è e cosa può fare per noi

  • 3. Sviluppo Web, scraping, software e GUI

    python

    Shutterstock

    Python è impiegato nello sviluppo Web perché, consentendo di creare molto contenuto con meno righe di codice, rende più efficiente la creazione di prototipi. Uno dei framework web più popolari è “Django” che può essere utilizzato per creare applicazioni Web dinamiche e molto sicure. Tra gli altri, “Flask” è un micro framework che permette di creare rapidamente siti semplici; “Web2py” è un altro ottimo framework facile da usare. Tra le aziende più conosciute che utilizzano Python ci sono Instagram, Reddit, Uber e Spotify.

    Il linguaggio Python viene utilizzato anche per lo scraping, ovvero per ottenere informazioni da altri siti Web. Applicazioni come Instagram, Bit Bucket, Pinterest sono integrate in tali framework. Le applicazioni supportate da Python vanno però ben oltre i suddetti campi perché riguardano anche lo sviluppo dei giochi, utilizzando librerie come PySoy (un motore di gioco 3D basato su Python). Tra i giochi sviluppati con Python ci sono Disney’s Toontown Online, Battlefield 2, Frets on Fire, ecc.

    Ma anche la rete dello sviluppo dei software. Molti pacchetti Python, come NumPy, Tkinter, SciPy, ecc., semplificano le procedure di sviluppo software. È anche possibile sviluppare applicazioni complesse che effettuano calcoli scientifici e numerici. Tra i grandi che lo usano per lo sviluppo software ci sono Dropbox, PyChess, BitTorrent, Gramps, ecc. 

    Grazie alla struttura modulare di Python, funziona su diversi sistemi operativi e permette di costruire GUI desktop utilizzando un efficiente framework, modulo o processore di testo, come PyGUI, PyGtk, PyQt4, PyQt5, ecc.

    Per approfondimento: Tecniche di web scraping

  • 4. Come installare Python e come programmare online

    Python smartphone e pc

    DANIEL CONSTANTE / Shutterstock

    Python 3 è la versione più moderna del linguaggio, contraddistinta da alcuni cambiamenti notevoli che la rendono incompatibile con Python 2 e da una community online in forte crescita.

    Come installare Python su Windows

    Per procedere con l’installazione su Windows è possibile farlo tramite Microsoft Store, consigliato perché gestisce gli aggiornamenti automaticamente e può anche essere disinstallato facilmente; oppure, con il programma di installazione dal sito Web ufficiale.

    In quest’ultimo caso, nella pagina di download è possibile trovare il file .exe per le versioni Windows a 32bit e 64bit. È sufficiente lanciarlo e seguire i vari passaggi, ricordandosi di selezionare la voce Add Python 3.X to PATH all'inizio dell'installazione. Dopo di che, per default, Python verrà collocato in C:\Python3X (ad esempio C:\Python35 per la versione 3.5). A questo punto è già possibile utilizzarlo, tramite Start > Tutti i programmi > Python3.5 > Python.

    Avendo selezionato Add Python 3.X to PATH durante l'installazione, dovrebbe essere possibile avviare Python dal prompt dei comandi semplicemente digitando il comando py o py -3. Nel caso in cui, in fase di installazione, non avessimo selezionato la suddetta opzione, è comunque possibile aggiungere Python alla variabile d'ambiente PATH manualmente, seguendo i seguenti passaggi. Andiamo su Pannello di controllo > Sistema> Impostazioni di Sistema Avanzate > Variabili d'ambiente, e modifichiamo la variabile PATH tra le variabili di sistema aggiungendo C:\Python3X (dove la X corrisponde alla versione installata).

    Per verificare che tutto sia andato a buon fine, avviamo il prompt dei comandi (Start > Esegui > cmd) e si digita: echo %PATH%. Se l'output include la stringa C:\Python3X, sarà possibile avviare Python digitando semplicemente py, py -3, o python. Se Python è stato installato correttamente, visualizzeremo un breve messaggio che indica la versione dell'interprete di Python, seguita dal prompt (>>>).

    Come installare Python su Linux

    Nei sistemi Linux spesso Python è già presente nel setup di base. È comunque possibile verificarne la presenza e le versioni presenti. Per farlo, digitiamo da shell: $ python oppure: $ python3

    Se entrambi i comandi falliscono, Python non è installato. Se python avvia Python 2 e il comando python3 non è presente, solo Python 2 è installato. Se invece il comando python o python3 avviano Python 3, allora Python 3 è installato. 

    Nel caso in cui Python 3 non sia installato, sarà necessario installarlo usando il gestore dei pacchetti per sistemi Linux: apt per distribuzioni basate su Debian; rpm per distribuzioni basate su Red Hat. In alternativa, è possibile scaricare e compilare i sorgenti di Python manualmente.

    Più in dettaglio, in base al sistema in uso è possibile avviare uno dei seguenti comandi: $ yum install python3, per distribuzioni basate su pacchetti rpm, come Red Hat, Fedora, Centos; $ apt-get install python3, per distribuzioni basate su Debian, come Ubuntu.


    Infine, vediamo come installare Python compilando i sorgenti. Per prima cosa, dobbiamo verificare l’ultima versione dei sorgenti dal sito, quindi lanciamo i seguenti comandi:

    $ cd /tmp

    $ wget http://www.python.org/ftp/python/3.x/python-3.x.tar.bz2

    Così facendo, abbiamo scaricato un archivio .tar.bz2 contenente i sorgenti Python. Estraiamone ora il contenuto:

    $ tar -xjf python-3.x.tar.bz2

    $ cd python-3.x

    Non resta che avviare l'installazione:

    $ ./configure

    $ make

    $ sudo make install

    Nota: è possibile usare make altinstall invece di make install per evitare che la versione che è appena stata installata sia associata al comando python.

    Come installare Python su Mac

    Come nei sistemi Linux, anche nei Mac dovremmo trovare Python già pronto all’uso. Per verificarlo, ancora una volta basta avviare una finestra di terminale e digitare python. Probabilmente verrà mostrata la versione 2.7, ma noi vogliamo usare la 3.X. Quindi bisognerà visitare il sito e scaricare la versione per Mac OS più adatta alle nostre esigenze. Infine, potremo procedere all’installazione.

    Al termine dell’installazione, lanciando python da terminale apparirà ancora la vecchia versione. Pertanto, bisogna aprire il terminale e digitare:

    vim ~/.bash_profile

    Una volta aperto il file, aggiungiamo la seguente riga:

    alias python="python3"

    Ora, provando di nuovo a lanciare python da terminale, di default si avvierà la versione 3.X.

    Come usare Python online 

    Per cominciare a programmare in Python senza installare alcun software sul PC, si può usare un tool di emulazione online che, in sostanza, consente al sistema host di emulare le qualità di un sistema client. Sono tool gratuiti che permettono di esercitarsi con il linguaggio di programmazione, in modo rapido e poco impegnativo. Molto utili per iniziare a programmare, di contro, inibiscono molte funzionalità.

    Per approfondimento:

  • 5. Perché imparare Python

    Python linguaggio programmazione

    Shutterstock

    Imparare Python presenta diversi vantaggi. Python non è solo facile da imparare e codificare, ma accelera l’intero processo di sviluppo. Dispone di una vasta gamma di framework, pacchetti, librerie e moduli che non richiedono di fare tutto da zero. Aiuta ad automatizzare i processi standard e a risparmiare tempo per concentrarsi sulla logica e su altri aspetti vitali dello sviluppo web e software.

    L’estrema versatilità è una delle ragioni della sua popolarità. Python, infatti, funziona con la stessa efficienza sia su progetti piccoli che su larga scala. Oltre agli impieghi citati sopra, gli sviluppatori lo usano per deep learning, data engineering, automazione dei processi, Internet delle cose (IoT) e altro ancora. Oltre all’enorme numero di funzioni, metodi, framework e librerie supportate, la leggibilità, la popolarità e l’usabilità di Python hanno incoraggiato lo sviluppo di molte altre librerie, rendendo il linguaggio ancora più user-friendly.

    Un aspetto da tenere in considerazione è la costante crescita della domanda di sviluppatori Python visto il suo impiego nelle tecnologie emergenti.

    Python viene utilizzato in servizi di business, assicurazioni, aerospaziale, vendita al dettaglio, banche, finanza, infotech, consulenza, sanità e hardware, solo per citarne alcuni. Le principali aziende che usano Python sono Google, NASA, YouTube, Quora, IBM, HP, Qualcomm e Dropbox; e anche loro assumono spesso sviluppatori dedicati. Secondo Indeed, nel 2021 lo stipendio medio degli sviluppatori Python negli Stati Uniti è di 110.840 dollari all’anno.

    Per approfondimento: Come imparare a programmare sul web

  • 6. Tutorial e corsi online

    python

    Shutterstock

    Anche se è disponibile una documentazione ufficiale di Python, a volte si può rimanere bloccati, soprattutto se si è principianti. In tal caso, un’ampia community di supporto può fornire un aiuto concreto. Online ci sono anche forum come Stack Overflow e community open source per esplorare il linguaggio come molti corsi, tutorial, siti web e altre risorse dedicate.

    Nella sezione wiki del sito ufficiale sono raccolti articoli introduttivi, guide e tutorial relativi ai primi passi da muovere nel mondo Python. Viene spiegato quali programmi installare e come farlo, come realizzare i primi algoritmi ed i primi programmi; quali funzioni utilizzare e quando utilizzarle. Grazie alla numerosa comunità di supporto, inoltre, è stato realizzato un tutorial divenuto con il passare degli anni sempre più preciso e puntuale.

    Qualsiasi dubbio o incertezza si possa avere nel corso del proprio lavoro con il linguaggio di programmazione creato da Van Rossum può essere risolto facendo appello a questa guida.

    Ci sono anche diverse piattaforme di e-learning che offrono corsi gratuiti per apprendere i concetti basilari di questo linguaggio di programmazione. Su Coursera si trovano videolezioni tenute da Charles Severance e diversi corsi avanzati dell'Università del Michigan, mentre Udacity offre un corso di sei settimane per muovere i primi passi nel mondo di Python.

    Ancora, su GitHub, ideata da Linus Torvalds per ospitare progetti e programmi open source, è possibile trovare anche raccolte di risorse per apprendere i diversi linguaggi di programmazione. Repository come CodeMentor, offrono una raccolta di siti utili Python per imparare a programmare e risolvere i problemi più comuni che si incontrano con questo linguaggio di programmazione.

    Per approfondimento: Come imparare a programmare Python

A cura di Cultur-e Costruisci il tuo futuro con la connessione Fastweb