Visualizzazione post con etichetta Python. Mostra tutti i post
Visualizzazione post con etichetta Python. Mostra tutti i post

venerdì 31 gennaio 2014

Pycharm, l'IDE che fa al caso mio!

Come a molti geek/hax0r/nerd/devs/ecc. piace anche a me senrimi old school utilizzando strumenti rozzi (ma infinitamente leggeri e flessibili) per sviluppare (chi ha nominato vi?). Va detto però che quando il progetto si fa serio, modulare ed esteso bisogna appoggiarsi a strumenti che aiutino a semplificare almeno la gestione dei vari componenti. Su Windows Visual Studio è praticamente il padrone indiscusso del settore IDE. Per quanto riguarda l'offerta open source si hanno molte più scelte ma non sempre i tool soddisfano ogni nostra più piccola esigenza.


Se quando mi trovo a sviluppare applicazioni C++ basate e non sul framework Qt non ho dubbi ed utilizzo QtCreator, nelle varie occasioni in cui ho sviluppato con Python non sono mai stato a mio agio ne con Eclipse, ne con il mastodontico NetBeans e neppure con lo scarno IDLE.

Recentemente ho effettuato la ricerca canonica di chi non sa dove picciare la testa e ho digitato su google "best python ide". Finalmente questa volta Google mi ha dato la risposta che cercavo portandomi sulla pagina che cercavo da anni: http://www.jetbrains.com/pycharm/

PyCharm è un integrated development environment che permette di sviluppare in modo molto agevole in python. Permette la gestione di progetti ed è integrato con i principali tool di versioning (chi ha detto Git?).

Ciò che mi ha colpito principalmente di PyCharm è la velocità con cui permette l'editing del testo. Pur basandosi su una JVM non soffre dei fastidiosissimi lag della gui di cui possono "vantarsi" altri IDE come Eclipse e soprattutto NetBeans. Permette di effettuare debug delle applicazioni in modo molto comodo fornendo uno snapshot dell'applicazione al breakpoint corrente e includendo tutte le informazioni che della VM python.
Utilizzandolo sempre più spesso ho anche potuto apprezzare il supporto al linguaggio C e HTML ed XML in generale.

Sul sito ufficiale viene rilasciato in due versioni: la community edition, che è gratis e che ha funzioni minime per la programmazione in python, e la versione professional che ha un supporto esteso anche ad altri framework e ad altri linguaggi.

Per il mio utilizzo minimo la community edition soddisfa appieno le mie esigenze e consiglio a tutti coloro che vogliono sviluppare in Python ma non hanno ancora trovato lo strumento che fa al caso loro.

E voi quale IDE usate per sviluppare in python?

domenica 6 dicembre 2009

How To Pythonize - Letture impegnate

Per la serie imparare Python voglio ora comunicare l'uscita, in ottobre, di un libro completo e molto utile.

Learning Python è giunto alla quarta edizione. La terza edizione copriva praticamente tutti gli aspetti core di Python 2.5 ma dopo l'uscita di Python 3.x è stato necessario anche aggiornare tutta la letteratura di riferimento. Ecco come si pone questa nuova edizione.

Ho ottenuto ieri il libro e mi è sembrato subito molto completo e chiaro in pieno stile O'Reilly. Tratta veramente un'infinità di aspetti su Python 2.6 e 3.x (Siamo arrivati alla versione 3.1). È un libro molto grande, sia dal punto di vista del volume visto che si tratta di più di 1200 pagine, sia dal punto di vista degli argomenti trattati.
Mi sembra un deciso passo avanti rispetto all'edizione 3 e non solo una semplice revisione che molto spesso vediamo arrivare sugli scaffali.

Insomma un must di ogni programmer-bilioteca.

martedì 27 ottobre 2009

Vipera - Python IDE

Devo dire una cosa: NetBeans è molto pesante, così come il "più performante" Eclipse.
Visto che mi sono stancato dei tempi di caricamento ho pensato di scrivermi io stesso un comodo ide molto veloce e leggero che consenta di gestire i progetti e permetta un minimo di autocompletamento e di sintassi evidenziata.

Ecco com'è nato Vipera di cui voglio far vedere le prime immagini del progetto. Il set di icone è un po' rudimentale ma assolutamente chiare.



Il programma è sviluppato in C++ utilizzando le librerie Qt per una massima portabilità ma devo già da ora precisare che sarà ottimizzato per Gnu/Linux.
Spero di poter rilasciare una versione beta molto presto.

lunedì 19 gennaio 2009

Python, un po' di storia.

Mi piace leggere articoli e informazioni riguardanti l'informatica, ma direi che la storia mi mancava.

Ho scoperto solo oggi l'esistenza di questo blog.
E' un sito tenuto dall'inventore del Python, Guido van Rossum, nel quale ci spiega un pochino come è nato e cresciuto quello che all'inizio era un semplice linguaggio di script, ma che sta diventando un linguaggio di programmazione sempre più completo e potente.

Nel post del 13 gennaio, ad esempio, Guido parla della filosofia del design del linguaggio Python. Una lettura molto interessante.

mercoledì 17 dicembre 2008

How To Pythonize - Python 3.0

Ho già scritto qualche giorno fa che Python 3.0 è pronto per essere utilizzato per i nostri script/programmi.



Ma ora più che mai è possibile testarlo e vedere effettivamente che cosa è cambiato.

$sudo apt-get install python3


Il comando installerà tutto il necessario.

I nostri script ora vanno sempre salvati con estensione .py ma andranno fatti partire da shell con il comando

$python3 mio_script.py


oppure inserire nella prima riga dello script:

#!/usr/bin/env python3

Purtroppo non è ancora possibile compilare i file sorgenti in byte code perchè se si avvia da il seguente errore:

$ python3 mio_script.pyc
RuntimeError: Bad magic number in .pyc file


D'ora in poi continuerò questo piccolo pyspazio alla versione 3 del linguaggio che rompe con il passato. Presto vedremo come.

giovedì 4 dicembre 2008

Python 3.0 Released

Ci siamo! Dopo mesi di release candidate e beta oggi finalmente abbiamo la final release di Python 3.0.



Chi lo comunica è il sito ufficiale di Python, http://www.python.org/download/releases/3.0/, in un post di ieri.

Python 3.0 rompe con il passato non essendo più compatibile con le versioni 2.x .

E' possibile scoprire cosa si nasconde di nuovo in questa versione consultando il link: http://docs.python.org/dev/3.0/whatsnew/3.0.html

mercoledì 17 settembre 2008

Google App Engine Update

Ecco che il team di Google torna a farsi sentire con un nuovo aggiornamento del loro motore per pagine web altamente dinamiche.



A questa pagina è possibile consultare le note di rilascio di questa nuova versione. Risalta il supporto zipimport finalmente funzionante.

Buona scoperta a tutti.

venerdì 18 luglio 2008

SPE Python IDE

Oggi mi sono imbattuto in una conversazione sulla mailing list di python alla quale pensavo di riuscire a rispondere agilmente: "Mi sapete consigliare un IDE per python?".



Io ho prontamente risposto: "Eric Python, anche se mi trovo meglio con geany+shell"

Ma la risposta dopo la mia è stata una di quelle che ti aprono gli orizzonti. "Prova SPE.".

SPE è un editor veramente completo. L'ho scaricato facilmente digitando

sudo apt-get install spe


E' possibile inoltre scaricare l'archivio .tar dal sito ufficiale del progetto: http://pythonide.blogspot.com/

Consiglio a tutti di provarlo perchè è veramente un bell'IDE, completo di supporto per UML e pyDoc.

mercoledì 9 aprile 2008

Google AppEngine

Dopo Android Google ci regala terreno nel quale cimentarci e conquista un'altra fetta di Internet.



Andando sulla pagina ufficiale di Google AppEngine si nota subito lo stile do google. Tutto è al proprio posto. Ma cos'è App Engine. E' un tool di sviluppo che consente di scrivere applicazioni da pubblicare online che andranno eseguite nel browser. Il linguaggio preferito è Python e Google ha già messo a disposizione degli sviluppatori una buona libreria. Le applicazioni si potranno poi pubblicare sui server Google creandosi un account appspot.com
Sulla pagina ufficiale è già anche presente una buona documentazione che sicuramente ci verrà incontro in questo primo periodo di scoperta dello strumento.

Ecco un video dimostrativo di quello che si può fare con Google App Engine:

sabato 16 febbraio 2008

How To Pythonize - I cicli


Veniamo ora a una parte molto interessante che ci farà complicare un po' gli algoritmi che scriviamo, ma che sicuramente elimina la gran parte dei problemi di ripetizione del codice: i cicli.

Il ciclo While.

while *condizione*:


Il ciclo while ci consente di fare delle operazioni fino a quando non si verifica la condizione.
Vediamo un esempio di codice per capire meglio:



Il ciclo For.


for *variabile* in *sequenza*:


Il ciclo for è utile per scorrere liste, per eseguire operazioni ripetitive in sequenza.
Facciamo un esempio:



Vediamo anche il ciclo for all'azione su una lista:



Divertiamoci un po' con i cicli prima di vedere un po' di strutture dati implementate in python.
Alla prossima.

mercoledì 30 gennaio 2008

How To Pythonize - L'indentazione del codice


In Python c'è un'indentazione ben precisa da rispettare. La struttura del codice è dettata da rigide indentazioni. In altri linguaggi, tipo il C, il programma può anche essere scritto tutto su una riga come ad esempio:

#include "stdio.h" int main (void){printf("Ciao mondo!");}


Questo oltre a essere molto poco leggibile, è anche poco manutenibile.
Il Python invece impone l'indentazione al codice, in modo da renderlo leggibile e manutenibile.

Vediamo un esempio di blocchi if annidati. L'indentazione vista nell'esempio è OBBLIGATORIA, altrimenti l'inteprete restituisce errore.
Sono ovviamente fuori da questa regola i commenti, ovvero le righe di codice che cominciano con il carattere '#'.



Aggiunta questa fondamentale informazione possiamo dalla prossima volta vedere come complicare un po' gli algoritmi inserendo i cicli.

domenica 27 gennaio 2008

Guido su Python 3000

Girovagando per la rete ho trovato un video interessante di Guido van Rossum.
In questo video parla del futuro di Python, la versione 3.0, meglio conosciuto come Python 3000.

Nelle note a lato del video si legge: "Guido van Rossum is a computer programmer who is best known as the author and Benevolent Dictator for Life of the Python programming language."

Ecco di cosa parla il video che dura più di un'ora: "ABSTRACT
The next major version of Python, nicknamed Python 3000 (or more prosaically Python 3.0), has been anticipated for a long time. For years I have been collecting and exploring ideas that were too radical for Python 2.x, and it's time to stop dreaming and start coding. In this talk I will present the community process that will be used to complete the specification for Python 3000, as well as some of the major changes to the language and the remaining challenges."


mercoledì 16 gennaio 2008

How To Pythonize - Le variabili e il controllo del flusso

Eccoci a un altro appuntamento con Python.

Oggi parliamo di come dichiarare variabili e di come controllarne i valori.
Le variabili in Python assumono un tipo al momento in cui vengono inizializzate.
I tipi solo: int, float, bool, char, string.
Per dichiarare una variabile per ogni tipo basta scrivere:

_valore_intero_ = 10 #assegna un valore intero
_valore_float_ = 3.5 #assegna un valore in virgola mobile
_valore_bool_ = true #assegna un valore bool.
_valore_char_ = 'c' #assegna un carattere
_valore_string_ = "questa e' una stringa" #assegna una stringa


Assegnati valori a delle variabili possiamo farne quello che vogliamo stando attenti ai tipi.

_totale_ = _valore_intero_ + _valore_float_ #trasforma il valore intero in float (10.0) e esegue la somma
_totale_ = _valore_intero + _valore_string #non esegue il comando perchè ci sono due valori che contrastano


Nel programma potremo aver bisogno di testare il valore di una variabile. Avremo allora bisogno del cotrutto if come nel codice di esempio:


Alla prossima dove parleremo dell'indentazione del codice.

lunedì 7 gennaio 2008

How To Pythonize - Input / Output

Vediamo ora quali sono i principali metodi per acquisire dati da tastiera e stamparli sul monitor.

Python ha delle funzioni molto semplici sia per acquisire i dati in input, sia per stampare gli stessi in output.

Acquisiamo ad esempio un intero da tastiera inserendo all'interno dello script la seguente riga:

data = input('Inserisci un numero > ')


Questo comando chiederà all'utente di inserire un numero nella shell e di premere invio, dopo di che il valore inserito da tastiera è contenuto dalla variabile data.

Per quanto riguarda le stringhe il trattamento è un po diverso:

stringa = raw_input('Inserisci una stringa > ')


Salva la stringa nella variabile "stringa".

Vediamo ora come stampare, i dati appena salvati, a video. Possiamo stampare le variabili semplicemente scrivendo:

print data
print stringa


Oppure si può formattare l'output scrivendo dei placeholder nella stringa da stampare come segue:

print "Ecco l'intero inserito: %d"%(data)
print "Ecco la stringa inserita: %s"%(stringa)


E' facile capire come Python gestisca l'output. All'interno della stringa si scrivono dei caratteri speciali, come %d (interi), %c (caratteri), %s (stringhe), che vengono poi identificati successivamente.

Se si vuole stampare solamente una stringa costante il comando da impartire è:

print 'Questa è una stringa costante.'


Alla prossima...

venerdì 4 gennaio 2008

How To Pythonize - Gli strumenti

Ecco pronto per tutti un piccolo corso di Python. Non ho pretese di spiegare concetti complicati, ma semplicemente creare una guida di base per invogliare, chi lo volesse, a scrivere i propri programmini, o programmoni che sia.


Perchè Python?
E' un linguaggio semplice, si trova di default nella maggior parte dei sistemi GNU/Linux, è leggero, è versatile, è potente, si può estendere facilmente con altri linguaggi.

Da che livello partiamo?
Ovviamente non verranno descritti i costrutti base di ogni linguaggio di programmazione, ma anche chi non ha mai visto una linea di codice potrà essere soddisfatto del proprio lavoro.


Che cosa mi serve per partire?

Tratteremo essenzialmente sistemi GNU/Linux, quindi è opportuno scaricarsi e installare una distribuzione GNU/Linux sul proprio computer. (Io uso Ubuntu 7.10). Gli esempi, soprattutto all'inizio però potranno anche essere eseguiti su Windows.
Ci vorrà poi un editor. Il mio consiglio ricade su IDLE, che è una shell python già pronta all'uso, e per i primi esempi utilizzeremo proprio quella. Successivamente possiamo spostarci su un IDE, o meglio su un editor avanzato come può essere gEdit.

Ahah! Hai sbagliato!
Non c'è problema, il blog è fatto a posta per questo, se gli script proposti come esempio non dovessero funzionare è sempre possibile aggiungere un commento al post per segnalare il bug che verrà immediatamente corretto per fornire una guida il più possibile corretta.
Già in questo post vi consiglio di inserire proposte, consigli e commenti di qualsiasi tipo.

Alla prossima ;)

venerdì 28 dicembre 2007

Python vacanziero


Data di oggi: 11100/1100/11111010111

Ebbene si, durante le vacanze ci si svaga.
Oggi sebbene lo studio inconba sulla mia testa ho trovato una decina di minuti per scrivere questo strambo programma dalla dubbia utilità.
Non ha un nome preciso ma il suo compito è convertire una data in binario.
L'output è un po' grezzo perchè stampa solo una lista ma è già sufficientemente chiaro tant'è che la data odierna la potete leggere in binario in alto.

Il programmino è diviso in due file scaricabili da qui:

python_serale.py
import util

if __name__ == "__main__":
print 'Convert data in binary...'

day = input('Day > ')
month = input('Month > ')
year = input('Year > ')

#Convert day
bin_day = util.binario(day)
bin_day = util.invert_list(bin_day)

#Convert month
bin_month = util.binario(month)
bin_month = util.invert_list(bin_month)

#Convert year
bin_year = util.binario(year)
bin_year = util.invert_list(bin_year)

#Append complete data
data = []
data = data + bin_day
data = data + ["/"]
data = data + bin_month
data = data + ["/"]
data = data + bin_year

print 'Binary conversion:'
print data


util.py
def binario(a):
li = []
while(a > 0):
li.append(a % 2)
a = a / 2

return li

def invert_list(li):
index_list = len(li) - 1
new_list = []

#We invert the list with a while loop
while index_list >= 0:
new_list.append(li[index_list])
index_list = index_list - 1

return new_list


Per eseguire il prgramma è sufficiente dare da terminale il comando:
~$ python python_serale.py