Scelta di una formazione python. Corsi individuali su misura di programmazione python. Apprendere python per applicazioni web e algoritmi di gestione dati - RasadaCrea, Grenoble Lyon

Salta testata | accessibilità sito : ridurre taglia del testo accessibilità sito : ingrandire taglia del testo | stampa il contenuto principale della pagina condividete questo documento internet con un partner

Perché scegliere Python come linguaggio di programmazione

imparare pyhton, formazione progetti python, esercizi di formazione python, corsi individuali per apprendere python

Come scegliere un valido linguaggio di programmazione

Esistono tanti linguaggi di programmazione, ciascuno con i suoi vantaggi e svantaggi. Occorre sceglierne uno. Alcuni sono legati ad ambienti di programmazione di software proprietari, mentre altri non offrono sufficienti requisiti di usabilità, robustezza e potenza. Il linguaggio dominante è probabilmente C/C++. Questo linguaggio è un riferimento assoluto, e ogni programmatore potrebbe avere necessità di utilizzarlo prima o poi. Purtroppo, il linguaggio C è molto complesso e laborioso, troppo vicino alla macchina. La sua sintassi non è veramente leggibile. Lo sviluppo di un programma scritto in C/C++ può dunque essere lungo e pieno di insidie. Lo stesso vale anche per una certa misura per il linguaggio Java.

D'altra parte, la pratica moderna di questo linguaggio fa ampio uso di generatori di applicazioni e altri strumenti di supporto quali C++Builder, KDevelop, ecc. Questi ambienti di programmazione possono certamente essere molto efficaci nelle mani di programmatori esperti, ma si basano su strumenti troppo complessi, che presuppongono conoscenze avanzate da parte degli utenti, fuori dalla portata di uno sviluppatore principiante.

Invece, l'uso di un linguaggio di alto livello, meno restrittivo, con una sintassi più leggibile é senz'altro una scelta eccellente per una vasta gamma di attività di programmazione. Tra questi linguaggi (come Perl, Ruby ..), Python rappresenta una scelta estremamente moderna, in rapida crescita.

Presentazione del linguaggio Python

Python è un linguaggio portabile, dinamico, estensibile, gratuito, che consente ma non richiede una programmazione modulare e orientata oggetti. Python è stato sviluppato come software open source a partire dal 1989 da Guido van Rossum e tanti altri programmatori volontari.

Vantaggi del linguaggio di programmazione Python

Le caratteristiche principali (e vantaggi che ne derivano) del linguaggio di programmazione Python (e le sue due implementazioni), possono essere elencati come segue:

  • Python è portabile, non solo sulle varie versioni di UNIX, ma anche sui sistemi operativi commerciali: MacOS, BeOS, NeXTStep, MS-DOS .. e le diverse varianti di Windows
  • Python è gratuito, ma può essere utilizzato senza limitazioni in progetti commerciali
  • Adatto sia per piccoli script Python di poche linee di codice sia per progetti complessi di decine di migliaia di linee di codice
  • La sintassi Python è molto semplice e, in combinazione con avanzati tipi di strutture dati (come liste, dizionari ..), consente di sviluppare programmi molto compatti e leggibili. A parità di funzionalità, un programma Python è da 3 a 5 volte più corto di uno scritto in C o C++, o anche in Java, con un tempo complessivo di sviluppo da 5 a 10 volte più breve e notevolmente più mantenibile
  • Python gestisce le sue risorse (memoria, descrittori di file ..) senza l'intervento del programmatore, con un meccanismo simile ad un "garbage collector"
  • Python è multi-threaded e multi-processing
  • Python è un linguaggio di programmazione orientato oggetti. Supporta l'ereditarietà multipla e l'overloading degli operatori. Nel suo modello a oggetti, e prendendo la terminologia C++, tutti i metodi sono virtuali
  • Python integra Python, come Java o le nuove versioni di C++, un sistema di gestione delle eccezioni, che possono semplificare notevolmente il controllo degli errori
  • Python è dinamico (l'interprete in grado di valutare le stringhe che rappresentano espressioni o istruzioni Python), ortogonale (un piccolo numero di concetti è sufficiente a generare strutture molto ricche), riflessivo (supporta la meta-programmazione, come per esempio la capacità di un oggetto di aggiungere o rimuovere attributi o metodi) e introspettivo (un gran numero di strumenti di sviluppo, di "debug" o "profiling", si trovano in Python stesso)
  • Come Scheme, o Smalltalk, Python é un linguaggio dinamico. A qualsiasi oggetto usato dal programmatore é attribuito un tipo ben definito in fase di esecuzione, senza bisogno di alcuna dichiarazione del tipo della variabile utilizzata
  • Python dispone attualmente di due implementazioni. Una, scritta in C (interpretata), in cui i programmi Python sono compilati in istruzioni portatili, e poi eseguiti da una macchina virtuale (come Java, con una importante differenza: Java è un linguaggio statico, quindi è molto più facile di accelerare l'esecuzione di un programma Java che non di un programma Python). L'altro, JPython, è scritto in Java e genera direttamente un bytecode Java
  • Python è estendibile: come Guile o Tcl, é possibile facilmente interfacciarsi con librerie C esistenti. Si può anche usare come linguaggio di estensione in architetture di sistemi software complessi
  • La libreria standard di Python, e molti altri pacchetti Python contribuiti da sviluppatori terzi, fornisce l'accesso a una vasta gamma di servizi: le stringhe e le espressioni regolari, i servizi standard UNIX (files, pipes, segnali, sockets, threads ..), i protocolli Internet (Web, News, FTP, CGI, HTML ..), la persistenza dei dati e le basi dati, le interfacce grafiche ..
  • Python è un linguaggio che continua ad evolversi, supportato da una comunità di programmatori entusiasti, la maggior parte dei quali sono sostenitori del software open source
  • Infine, Python è un linguaggio di scelta per l'elaborazione di documenti XML

Versioni del linguaggio Python

Python è in continua evoluzione per migliorare il linguaggio. Non é necessario cambiare tutti i nostri programmi per adattarli ad una nuova versione Python che sarebbe diventata incompatibile con la precedente. Tuttavia ci sono due rami di sviluppo: Python 2.x e Python 3.x.

Sebbene Python 3.0 è stato rilasciato poco dopo la versione 2.6, e la versione 3.1 e 3.2 sono state rese disponibile nel frattempo, pochi sviluppatori hanno fatto la scelta di sviluppare esclusivamente nella versione 3.x di Python. Ciò è dovuto a varie ragioni. La prima è che Python 3.x ha finora portato pochissime nuove funzionalità, ma richiede la modifica del codice sorgente di un progetto iniziato con una delle versioni 2.x. La seconda è che tutte le principali librarie Python non sono ancora disponibili in Python 3.x.

Infine, dal punto di vista degli sviluppatori di Python, c'erano due rami in cui sono state aggiunte nuove funzionalità (per esempio 2.7 e 3.2), oltre a due rami di manutenzione (2.6 e 3.1). Nella maggior parte dei casi, ogni commit deve essere replicato in quattro rami, che ha un costo significativo (anche se alcune operazioni sono automatizzate).

In futuro le nuove funzionalità saranno sviluppate solo in Python 3.x. Gli sforzi si concentreranno pertanto nel rendere più appetibile le nuove versioni 3.x di Python. Un elenco di nuove funzionalità Python 3.2 sono disponibili e possono essere consultate. Le modifiche di funzionalità del linguaggio Python sono sottoposte alla procedura di PEP (Le proposte di miglioramento di Python): PEP contiene l'indice di tutte le proposte di miglioramento di Python.

Lo strumento 2to3 di conversione Python

2to3 è un programma Python che legge il codice sorgente Python 2.x e applica una serie di "fissatori" per trasformarlo in codice valido Python 3.x. La libreria standard contiene un ricco insieme di fissatori che consente di gestire quasi tutte le modifiche di codice. 2to3 utilizza la libreria lib2to3, che è una libreria flessibile e generica, per cui è possibile scrivere il proprio "fissatore" 2to3. lib2to3 potrebbe anche essere adatta per le applicazioni personalizzate in cui il codice Python può essere modificati automaticamente.

2to3 è di solito installato con l'interprete Python come uno script. Si trova nella directory tools/script dell'installazione Python. I principali argomenti dello script 2to3 includono un elenco di file o directory contenenti codice Python da convertire. Le directory sono attraversate in modo ricorsivo per cercare tutti i file sorgenti Python. Ecco un esempio di codice in Python 2.x da convertire, che si trova in un file chiamato esempio.py:

def buongiorno(nome):
    print "Buongiorno, {0}!".format(nome)
print "Il nome :"
nome = raw_input()
buongiorno(nome)

Questo codice può essere convertito in Python 3.x con il programma 2to3 a partire dal terminale:

$ 2to3 esempio.py

Questo comando invia al terminale una informazione in formato diff delle relative differenze con il file sorgente originale, senza tuttavia modificare il file originale. 2to3 può anche scrivere le modifiche nel file sorgente con l'opzione -w. In questo caso il file originale viene salvato con estensione .bak (con l'aggiunta invece dell'opzione -n non viene prodotto nessun file di backup):

$ 2to3 -w esempio.py

Dopo la trasformazione, il file sorgente esempio.py assomiglia al seguente:

def buongiorno(nome):
    print("Buongiorno, {0}!".format(nome))
print("Il nome: ")
nome = input()
buongiorno(nome)

Per impostazione predefinita, 2to3 esegue una serie di "fissatori". L'opzione -l elenca tutti i "fissatori" disponibili. Un insieme esplicito di "fissatori" da utilizzare può essere definito con l'opzione -f. Analogamente, l'opzione -x disabilita in modo esplicito un "fissatore". L'esempio seguente esegue solo i "fissatori" import e has_key:

$ 2to3 -f imports -f has_key esempio.py

Formazione individuale e corsi di programmazione Python da RasadaCrea

Tutti i corsi di formazione in programmazione Python tenuti da RasadaCrea sono individuali e personalizzati. Contattate RasadaCrea per ulteriori informazioni sulla creazione di un piano di formazione personalizzato di corsi di programmazione Python, e per conoscere i prezzi e l'organizzazione dei programmi di apprendimento Python.