Una bella notizia per gli amici pythonisti o aspiranti tali:
grazie al lavoro di Andrea Zanella, è disponibile la versione italiana aggiornata del classico "Pensare in Python - Come pensare da Informatico" di Allen B. Downey.
Come sempre lo trovate anche nella lista delle Risorse Python insieme ai codici di esempio e soluzione degli esercizi, quest'ultimi in inglese.
giovedì 19 marzo 2015
sabato 23 agosto 2014
Risorse Python: aggiornamento 9 - Editor e IDE per sviluppare in Python
Prima o poi il codice Python con qualcosa bisognerà pure scriverlo. Massiccio aggiornamento della sezione risorse Python con l'aggiunta di due intere sottosezioni dedicate all'argomento:
Aggiunto anche un tutorial interattivo di Codecademy per Python 2.x.
Aggiunto anche un tutorial interattivo di Codecademy per Python 2.x.
domenica 3 agosto 2014
Come e perché usare il versioning semantico
Avete presente tutti quei numeri che indicano la versione di un certo software? Parlo di quei numeri del tipo x.y.z. Per esempio Python al momento in cui scrivo esiste nella versione 2.7.8 e 3.4.1.
Vi siete mai chiesti cosa rappresentano e come vengono decisi quei numeri?
Si tratta del cosiddetto versionamento semantico o semantic versioning. In poche parole:
Immaginate di avere un vostro software che usa la versione X.Y.Z , per esempio la 2.1.0 di un certo modulo/liberia sviluppata da qualcun altro: se il suo sviluppatore segue il versioning semantico, potrete avere una ragionevole sicurezza che non ci saranno modifiche non retrocompatibili finché userete il ramo 2.X di quel modulo.
Allo stesso modo, quando sviluppate voi un software, potete comunicare in modo semplice ed efficace che tipo di modifiche avete fatto:
Vi siete mai chiesti cosa rappresentano e come vengono decisi quei numeri?
Si tratta del cosiddetto versionamento semantico o semantic versioning. In poche parole:
- X rappresenta la "major" release di un software, ossia una release la cui API (Application Programming Interface) non è retrocompatibile con la precedente release. Python 3.x ha un'API non retrocompatibile con quella di Python 2.x, per esempio lo statement print è diventata la funzione print();
- Y rappresenta la "minor" release di un software, ossia una release in cui anche se vengono aggiunte nuove funzionalità, l'API resta retrocompatibile con la versione precedente del software.
Python 2.7 ha aggiunto/modificato delle funzionalità, ma queste sono retrocompatibili con la precedente versione Python 2.6, perciò il software che avete scritto per la 2.6 continuerà a girare anche con Python 2.7; - Z rappresenta laa "patch"
release di un software, ossia una release in cui vengono solo corretti dei bug e l'API resta comunque retrocompatibile con la versione
precedente del software.
Python 2.7.8 è una versione che corregge dei bug rispetto alla precedente 2.7.7 e resta retrocompatibile con essa.
Immaginate di avere un vostro software che usa la versione X.Y.Z , per esempio la 2.1.0 di un certo modulo/liberia sviluppata da qualcun altro: se il suo sviluppatore segue il versioning semantico, potrete avere una ragionevole sicurezza che non ci saranno modifiche non retrocompatibili finché userete il ramo 2.X di quel modulo.
Allo stesso modo, quando sviluppate voi un software, potete comunicare in modo semplice ed efficace che tipo di modifiche avete fatto:
- se è un semplice bugfix modificherete il numero Z di patch release, ad esempio da 2.1.0 a 2.1.1;
- se avete aggiunto nuove funzionalità senza però rompere la retrocompatibilità, modificherete solo il numero Y di minor release, ad esempio da 2.1.1 a 2.2.0;
- se la vostra nuova versione del software ha un'API non più compatibile con quella delle versioni precedenti, modificherete il numero X di major release, ad esempio da 2.1.1 a 3.0.0.
martedì 13 maggio 2014
Disinstallare Python da pyenv
Nella serie di post precedenti avete imparato a configurare la/le versioni di Python da usare con pyenv al livello di granularità richiesto:
Vediamo adesso come disinstallare le versioni di Python che non ci interessano più. Usate
pyenv uninstall 2.7.6
per eliminare solo la versione indicata. Ripetete il comando per ogni versione installata che volete disinstallare. Potrebbe capitare che non vi ricordiate quali versioni di Python avete installato sulla vostra macchina. Chiedetelo a pyenv:
pyenv versions
Se volete, la dinstallazione potete farla anche manualmente. Si tratta di una semplice cancellazione della directory che contiene la versione che vogliamo disinstallare tramite il comando:
rm -rf nome_directory
Per esempio, supponiamo di voler eliminare Python 2.7.6 precedentemente installato. Dov'è la directory che la contiene? Chiediamolo a pyenv:
pyenv prefix 2.7.6
La risposta è:
~/.pyenv/versions/2.7.6
Eccola lì, basta cancellare questa directory ed il gioco è fatto:
rm -rf ~/.pyenv/versions/2.7.6
Allo stesso modo si procede per qualunque altra versione di Python, basta ricordare che in generale ogni versioni di Python è installate nella directory:
~/.pyenv/versions/numero_versione
E se non ve lo ricordate non è un problema, usate pyenv prefix e avrete il percorso completo della directory da cancellare.
Vediamo adesso come disinstallare le versioni di Python che non ci interessano più. Usate
pyenv uninstall 2.7.6
per eliminare solo la versione indicata. Ripetete il comando per ogni versione installata che volete disinstallare. Potrebbe capitare che non vi ricordiate quali versioni di Python avete installato sulla vostra macchina. Chiedetelo a pyenv:
pyenv versions
Se volete, la dinstallazione potete farla anche manualmente. Si tratta di una semplice cancellazione della directory che contiene la versione che vogliamo disinstallare tramite il comando:
rm -rf nome_directory
Per esempio, supponiamo di voler eliminare Python 2.7.6 precedentemente installato. Dov'è la directory che la contiene? Chiediamolo a pyenv:
pyenv prefix 2.7.6
La risposta è:
~/.pyenv/versions/2.7.6
rm -rf ~/.pyenv/versions/2.7.6
Allo stesso modo si procede per qualunque altra versione di Python, basta ricordare che in generale ogni versioni di Python è installate nella directory:
~/.pyenv/versions/numero_versione
E se non ve lo ricordate non è un problema, usate pyenv prefix e avrete il percorso completo della directory da cancellare.
lunedì 30 dicembre 2013
Risorse Python: aggiornamento 8 - differenze Python 2.x/3.x
Nell'ottavo aggiornamento della pagina Risorse Python del blog ho inserito link a materiale sulle differenze tra Python 2.x e 3.x, uno dei problemi che lo sviluppatore Python prima o poi si trova ad affrontare nell'attuale fase di transizione fra le due versioni.
Aggiornamenti anche per la sezione Esempi di codice con un po' di snippet di pronto intervento quando non ricordate qualche aspetto base del linguaggio.
Aggiornamenti anche per la sezione Esempi di codice con un po' di snippet di pronto intervento quando non ricordate qualche aspetto base del linguaggio.
sabato 28 dicembre 2013
Risorse Python: aggiornamento 7 - tutorial PyMOTW anche in italiano
Settimo aggiornamento per la pagina Risorse Python del blog con l'inserimento di Python Module of the Week, noto anche come PyMOTW, un tour guidato sulla Python Standard Library creato da Doug Hellmann.
Ricco di spiegazioni semplici e dettagliate, accompagnate da abbondanti esempi di codice, lo mettono alla portata anche di chi conosce solo le basi di Python e vuole passare al gradino successivo del suo apprendimento. E se l'inglese non è il vostro forte, c'è una versione italiana di PyMOTW.
Viste le caratteristiche, aggiunto sia nella sezione Libri inglese - da altri linguaggi che nella sezione Tutorial.
Ricco di spiegazioni semplici e dettagliate, accompagnate da abbondanti esempi di codice, lo mettono alla portata anche di chi conosce solo le basi di Python e vuole passare al gradino successivo del suo apprendimento. E se l'inglese non è il vostro forte, c'è una versione italiana di PyMOTW.
Viste le caratteristiche, aggiunto sia nella sezione Libri inglese - da altri linguaggi che nella sezione Tutorial.
venerdì 20 dicembre 2013
Idiomatic Python: come scrivere codice alla maniera di Python
Come scrivere codice pythonico,
con relative slide.
Buona visione.
con relative slide.
Buona visione.
martedì 17 dicembre 2013
Come aggiornare Pyenv
Dopo aver configurato Python a livello locale, non vi resta che tenere aggiornata l'installazione di pyenv. Il suo aggiornamento si rende necessario quando:
Per procedere con l'aggiornamento di pyenv, aprite un terminale e date i comandi:
cd ~/.pyenv
git pull
Tutto qui, avete finito.
Tenete solo presente una cosa: se la nuova versione continua a non apparire anche dopo l'aggiornamento, significa che lo sviluppatore di pyenv può non aver ancora fatto in tempo ad aggiornare il repository dell'applicazione. Riprovate successivamente.
- sono stati corretti dei bug;
- è disponibile una nuova versione di Python.
Per procedere con l'aggiornamento di pyenv, aprite un terminale e date i comandi:
cd ~/.pyenv
git pull
Tutto qui, avete finito.
Tenete solo presente una cosa: se la nuova versione continua a non apparire anche dopo l'aggiornamento, significa che lo sviluppatore di pyenv può non aver ancora fatto in tempo ad aggiornare il repository dell'applicazione. Riprovate successivamente.
lunedì 16 dicembre 2013
Risorse Python: aggiornamento 6 - Tkinter
Sesto aggiornamento per la pagina Risorse Python del blog interamente dedicato a Tkinter, l'interfaccia Python standard a Tk, il toolkit per interfacce utente grafiche (GUI).
Guide, tutorial e reference per Tkinter di cui oltre la metà sono in italiano, le prime nella lista, e tutte comunque liberamente scaricabili/consultabili in rete.
Guide, tutorial e reference per Tkinter di cui oltre la metà sono in italiano, le prime nella lista, e tutte comunque liberamente scaricabili/consultabili in rete.
venerdì 13 dicembre 2013
Configurazione di Python tramite pyenv a livello di shell
Nel post precedente ci siamo occupati della configurazione di Python con pyenv a livello locale, cioè della versione di Python da avviare al livello di una specifica directory.
In questo post invece ci occupiamo dell'ultima e più specifica di tutte le impostazioni che pyenv vi permette, quella a livello di shell (terminale): grazie ad essa potete specificare quale versione di Python usare a livello di ogni singolo terminale che aprite sul vostro sistema.
Lo fate tramite il comando
pyenv shell 3.3.3
che ad esempio imposta l'uso di Python 3.3.3 per la sola shell corrente, sovrascrivendo quindi sia le impostazioni a livello globale, sia a livello locale eventualmente già configurate.
Come sempre si possono impostare più versioni di Python contemporaneamente con
pyenv shell 2.7.6 3.3.3
mentre
pyenv shell
senza ulteriori indicazioni restituisce le versioni di Python attive nella shell corrente:
2.7.6:3.3.3
Non si tratta di un errore, le versioni attive in questo caso sono visualizzati in questo modo un po' diverso dal solito.
Le impostazioni valgono per quella shell finché resta aperta. Una volta chiusa tutte le impostazioni andranno perse e resteranno attive solo quelle globali e locali perché queste sono registrate su file, rispettivamente nel file ~/.pyenv/version per quella globale, e nel file .pyenv-version della directory corrente per quella locale.
Se volete annullare le impostazioni fatte finora senza chiudere la shell usate
pyenv shell --unset
e riprenderanno a funzionare le impostazioni locali se precedentemente configurate, altrimenti quella globale.
In questo post invece ci occupiamo dell'ultima e più specifica di tutte le impostazioni che pyenv vi permette, quella a livello di shell (terminale): grazie ad essa potete specificare quale versione di Python usare a livello di ogni singolo terminale che aprite sul vostro sistema.
Lo fate tramite il comando
pyenv shell 3.3.3
che ad esempio imposta l'uso di Python 3.3.3 per la sola shell corrente, sovrascrivendo quindi sia le impostazioni a livello globale, sia a livello locale eventualmente già configurate.
Come sempre si possono impostare più versioni di Python contemporaneamente con
pyenv shell 2.7.6 3.3.3
mentre
pyenv shell
senza ulteriori indicazioni restituisce le versioni di Python attive nella shell corrente:
2.7.6:3.3.3
Non si tratta di un errore, le versioni attive in questo caso sono visualizzati in questo modo un po' diverso dal solito.
Le impostazioni valgono per quella shell finché resta aperta. Una volta chiusa tutte le impostazioni andranno perse e resteranno attive solo quelle globali e locali perché queste sono registrate su file, rispettivamente nel file ~/.pyenv/version per quella globale, e nel file .pyenv-version della directory corrente per quella locale.
Se volete annullare le impostazioni fatte finora senza chiudere la shell usate
pyenv shell --unset
e riprenderanno a funzionare le impostazioni locali se precedentemente configurate, altrimenti quella globale.
Iscriviti a:
Post (Atom)