Re: [Python] Variabili su file esterno
Original Message On Jul 10, 2022, 19:25, Marcello Ilardi < marce...@linuxvil.it> wrote: Salve a tutti, in un mio programma, per creare file di configurazione, utilizzo il seguente codice: variabili = {} variabili['IPADDRESS'] = '192.168.1.2' variabili['NETMASK'] = '255.255.255.0' variabili['GATEWAY'] = '192.168.1.1' configurazione = (f''' net.static.IP = {variabili['IPADDRESS']} net.static.SubnetMask = {variabili['NETMASK']} net.static.Gateway = {variabili['GATEWAY']} ''') print(configurazione) In questo modo mi vengono sostituite correttamente le variabili. adesso ho la necessità, visto la lunghezza di 'configurazione' (più di 1000 righe) di creare un file dove metto la sola variabile 'configurazione' e all'occorrenza leggere il file e impostare correttamente le variabili. Il problema che leggendo da un file esterno non riesco a sostituite le variabili tra grafe. Nel file.txt metto: net.static.IP = {variabili['IPADDRESS']} net.static.SubnetMask = {variabili['NETMASK']} net.static.Gateway = {variabili['GATEWAY']} il programma py: variabili = {} variabili['IPADDRESS'] = '192.168.1.2' variabili['NETMASK'] = '255.255.255.0' variabili['GATEWAY'] = '192.168.1.1' with open((f'''file.txt'''), "r") as configurazione_tmp: configurazione = configurazione_tmp.read() print(configurazione) Come posso risolvere? Grazie a tutti, Saluti Marcello ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python Ciao, non so se hanno già dato la stessa risposta perché temo di essermi perso qualche mail, ma oltre allr alternative già citate (yaml, db, config parser) puoi anche formattare la stringa esplicitamente usando il metodo str.format o str.format_map, che fa sostanzialmente quello che viene fatto implicitamente quando usi le f-strings (f""). ecco un esempio per darti un'idea di come puoi usare format_map: s = "foo = {bar}" d = dict(bar="1234") print(s.format_map(d)) # foo = 1234 comunque è un sistema fragile di sostituzione, quindi anche se potrebbe essere conveniente nel tuo caso, potresti optare per qualcosa di più robusto se fosse per un lavoro più che amatoriale. ciao___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Xkcd again
On Sun, May 6, 2018, 19:02 Simone Federiciwrote: > Scusate ma > > il pacchetto di sistema ha una versione... > > ma se hai più progetti su un server che fate? tenete allineati tutti i > progetti appena debian rilascia una libreria? > > sudo pip è un abominio, ma anche le librerie debian sono una dipendenza > tra applicativo e sistema operativo che non c'è motivo di avere. perché > legarsi le mani? > Dipende da cosa bisogna fare, ovviamente: sono d'accordo con te, ma per certe cose, prototipi e test, non mi serve avere un venv attivo e i pacchetti di sistema sono sufficienti (e li preferisco che avere un venv che ne fa le veci). Poi, per il resto, ovviamente pip può ignorare site packages di sistema ed equivale ad un ambiente pulito. virtualenv, venv o conda + pip sono una manna dal cielo. > > altro discorso se avete una infrastruttura cloud e dockerizzate tutte le > vostre app > Che non è poi orribile come soluzione :) Ciauz ~Ale ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Xkcd again
On Sun, May 6, 2018, 10:54 Pietro Battiston <m...@pietrobattiston.it> wrote: > Il giorno mar, 01/05/2018 alle 06.59 +, Alessandro Re ha scritto: > > On Tue, May 1, 2018, 01:28 Marco Beri <marcob...@gmail.com> wrote: > > > Ma questa volta ci critica... ;-) > > > > > > https://xkcd.com/1987/ > > > > > > Ciao. > > > Marco. > > > > > > > Più che critica, vittima dei tempi :D > > > > Sono specialmente d'accordo con la caption sui pericoli di installare > > i pacchetti con sudo! > > Stiamo parlando di "sudo pip" (che non userei mai) o "sudo apt-get" > (che è l'unico modo che mi fa stare davvero tranquillo)?! > sudo pip, ofc :D purtoppo vedo persone usarlo molto più spesso di quanto vorrei (per questo spero che pipenv diventi il metodo raccomandato per gestire pacchetti e spero che diventi parte del normale processo di apprendimento di python). In generale io uso i pacchetti di sistema quando possibile e da user sempre `python3 -m venv` (tranne ultimamente che ho adottato pipenv). Evito anche `pip install --user` perché ho avuto non pochi grattacapi con i notebook jupyter in questo caso. Ciauz ~Ale ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] pipenv (Was: Xkcd again)
On Fri, May 4, 2018, 11:35 Raffaele Salmaso <raffa...@salmaso.org> wrote: > 2018-05-04 11:07 GMT+02:00 Alessandro Dentella <san...@e-den.it>: > >> On Fri, May 04, 2018 at 10:29:56AM +0200, Raffaele Salmaso wrote: >> >2018-05-01 8:59 GMT+02:00 Alessandro Re <[1]akirosspo...@gmail.com>: >> > >> >[2]https://github.com/pypa/pipenv ci darà un futuro migliore? :) >> > >> >No >> > Nel mio piccolo, sto già avendo un futuro migliore usando pipenv, quindi per me sì :) >> Lo dici perché è solo un elemento in un groviglio di strumenti o >> perché ne conosci i limiti? Se ne vedi limiti puoi raccontarli? >> > Più che altro è un tool che usa pip e i virtualenv alla base, > quindi non vedo come possa essere differente da adesso, se non > automatizzando il processo > Sono abbastanza dell'opinione che il problema della vignetta originale non sia il fatto che il grafo delle dipendenze sia complesso, ma il problema è doverlo gestire manualmente. Se poi pipenv si aggiunge ad un panorama già ricco di altri strumenti automatici apportando un contributo utile è un altro discorso (xkcd.com/927 :) Ciauz ~Ale ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Xkcd again
On Tue, May 1, 2018, 01:28 Marco Beriwrote: > Ma questa volta ci critica... ;-) > > https://xkcd.com/1987/ > > Ciao. > Marco. > Più che critica, vittima dei tempi :D Sono specialmente d'accordo con la caption sui pericoli di installare i pacchetti con sudo! https://github.com/pypa/pipenv ci darà un futuro migliore? :) Ciauz ~Ale ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Ragazzi, figo proprio questo pycon8!
2017-04-09 11:04 GMT+02:00 Roberto Polli: > Ciao belli, > > ancora deve finire ma già ci manca... pycon8! > > Grazie a tutti quelli che ci sono :D Concordo, è stato un gran piacere anche per me. Comunque mi dicono che europython dura di più :D Magari ci si vede a Rimini. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Nuova release per UnrealEnginePython
Fantastico, grazie! Non mancherò al talk, che ne ho bigiati fin troppi :) On Wed, Mar 1, 2017 at 3:53 PM Roberto De Ioriswrote: > Ciao a tutti, vi segnalo che e' disponibile una nuova release > del plugin python per Unreal Engine 4. > > Ci tengo particolarmente ad annunciarla perche' e' la prima che include > una test suite che puo' essere usata anche come base per i propri > giochi/simulazioni (a meno che non vogliate scrivere i vostri unit test in > C++ ;) > > Il sito del progetto e' qui: > > https://github.com/20tab/UnrealEnginePython > > (i binari sono disponibili per mac e win, su linux tocca ancora compilare > da sorgente ma sto facendo del mio meglio per risolvere sta rottura) > > Per chi non sapesse cosa e' unreal engine vi linko lo showreel nuovo di > zecca per il 2017: > > https://www.youtube.com/watch?v=WC6Xx_jLXmg > > A pycon terro' un talk sul progetto, vi aspetto :P > > -- > Roberto De Ioris > http://unbit.com > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Dubbi basilari da neofita.
Ah grazie! Pensavo che NVDA fosse una categoria più che un nome specifico... Che imbarazzo! :D On Tue, Feb 28, 2017 at 6:32 PM Carlo Miron <mi...@python.it> wrote: > 2017-02-28 18:27 GMT+01:00 Alessandro Re <a...@ale-re.net>: > > > Giusto per curiosità, come si chiama il software? > > Suppongo sia <https://github.com/nvaccess/nvda>. > > ㎝ > > -- > |:**THE -WARE LICENSE** *(Revision ㊷)*: > | <miron@.it> wrote this mail. As long as you retain this > | notice you can do whatever you want with this stuff. > | If we meet some day, and you think this stuff is worth it, > | you can buy me a in return. —㎝ > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Dubbi basilari da neofita.
Ciao Filippo, innanzi tutto ti correggo una cosina: tendenzialmente, python non viene compilato, ma interpretato. Poi la realtà è complicata, ma in generale non si parla spesso di "compilare un software python". Comunque, il problema maggiore è che python 3 non è retro-compatibile con python 2, quindi quel software difficilmente riuscirebbe a funzionare con un interprete recente (a meno di essere stato fatto molto bene, ma in quel caso gli autori direbbero che è compatibile con python 3). Il numero di differenze e le possibili cose da cambiare potrebbero essere poche e triviali, oppure veramente sostanziali. Giusto per curiosità, come si chiama il software? A presto ~Alessandro On Tue, Feb 28, 2017 at 5:39 PM Filippo Tenagliawrote: > Ciao a tutti, > come da oggetto sono un neofita di Python e, dopo un lungo periodo di > programmazione in Java, vorrei imparare questo linguaggio in modo da > "giocarci" ampliando le funzionalità dello screen reader NVDA (sono > totalmente cieco e mi piacerebbe aggiungere qualcosina a quest'ottimo > software opensource). > Vi starete chiedendo "ma questo dove vuole arrivare?" è presto detto, > il suddetto software è sviluppato con python 2.7.13 e mi chiedevo, > prima di fare danni, cosa comporterebbe ricompilare il software con la > versione più recente e, soprattutto, se ci sono così tante differenze > da rendere questa operazione incompatibile con il software originale. > Come detto vorrei imparare questo linguaggio ma prima di partire con > lo studio vorrei essere sicuro di studiare la versione giusta! > Grazie per l'attenzione prestatami e, in attesa di vostre risposte, vi > auguro una buona serata! > Filippo Tenaglia. > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] np.random aiuto!!!
Ciao, Non sono sicuro di aver capito bene il problema, ma provo a dirti dove credo tu stia sbagliando. On Apr 29, 2016 08:41, "Francesca Senatore" < francesca.senatore1...@gmail.com> wrote: > from numpy as np > for num in range(300): > a = 5.6e3 > b = 2.5e6 > probs = [0.88514, 0.0946, 0.006757, 0.01351] > cutoffs = np.cumsum(probs) > temp = (b-a)*rand.uniform(0, cutoffs[-1])+a A parte che non è ben chiaro cosa siano a e b, rand.uniform(0,1) genera un numero casuale in [0,1) direi... Quindi non ottieni affatto quello che volevi :D Una volta calcolato il vettore con le probabilità cumulate, devi usarlo! Ora, estratto un numero casuale tra 0 e 1 con distribuzione uniforme, quel vettore ti dice che lo 88.5% delle volte quel numero casuale sarà più piccolo del primo elemento del vettore, il 97.9% (88.5% + 9.4%) delle volte più piccolo del secondo elemento, eccetera fino alle 100% delle volte più piccolo dell'ultimo elemento. Quindi quando hai estratto un numero a caso in [0,1], devi andare a cercare nel tuo vettore di cumulate qual è la posizione del vettore che contiene il più grande numero non più grande di quello estratto. Per esempio (scrivo il codice al volo dal cellulare, potrebbe avere bugs :p) nu = random.uniform(0,1) for i, p in enumerate(cutoffs): if p >= nu: print('trovato', i) break Se ad esempio estrai 0.1 questo sarà più piccolo di cutoffs[0] e quindi stampa 0. Se estrai 0.9, questo sarà più grande di cutoffs[0], ma non di cutoffs[1], quindi stampa 1, e così via. Spero di averti chiarito dove sta l'errore, ma se le funzioni che ti hanno consigliato gli altri fanno ciò che ti serve, usa quelle :) Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] OT: Imparare un altro linguaggio
Questa mail mi era sfuggita, rispondo in ritardo. 2016-04-20 13:43 GMT+01:00 enrico franchi: >> > C, te lo consiglio per giocare coi puntatori. Sono una bella cosa da >> > sapere, secondo me, e li trovo anche molto divertenti. > > +1 > > Puntatori... gestione della memoria a basso livello dal punto di vista della > macchina. > Nel senso che gestire la memoria a basso livello e' probabilmente piu' > *comodo* in Rust, ma per imparare a pensare a come fa le cose sotto la > macchina, C e' un buon compromesso rispetto ad altro. > > Fossero solo i puntatori, tanto vale Go. ;) Sì, intendevo più quello che i puntatori in sé. Anche se, se non sbaglio, l'aritmetica dei puntatori manca in Go, e quella la trovo divertente in sé :) > Si alla programmazione funzionale "pura". Lisp lo definirei tutto meno che > "funzionale puro". Cioe', puoi limitarti ad un sottoinsieme "puro" di Lisp, [cut] ahah su questo devo semplicemente farmi da parte: non ho tutta l'esperienza che hai tu a riguardo, e mi sono dovuto limitare ai pochi linguaggi che ho usato :) Ricordo però che lisp e scheme li ho studiati in modo puramente funzionale. > Fra i "lisp like" per assurdo uno dei piu' puri e interessanti e' Clojure. > Molto molto bellino. Metto in coda. > Si. Go e' anche un ottima scelta per capire quali siano le parti sane della > programmazione ad oggetti. ;) Ahah interessante... E mi sentirei di concordare, se solo non avessi il dubbio perenne di non aver capito qual è il modo giusto di usare go :) Hai libri consigliati a tal proposito? Donovan & Kernighan? >> > Poi oh, vedi te cosa vuoi fartene :) Se devi cercarti un lavoro... >> > Andrei su C/C++/Java. > > Io direi di no. C e' soprattutto embedded. C++ si trova da lavorare ma e' > molto specialistico. Java e' un mercato agguerrito. I posti di lavoro > interessanti li pigliano la gente *davvero* sveglia o davvero skillata. Poi > capita sempre che uno vorrebbe fare altro e se lo trova fra le palle > comunque: cercare proprio di lavorare in Java e' preposterous. Su questo non sono del tutto d'accordo. Dipende molto cosa si cerca di lavoro, no? Purtroppo non ho davvero una buona idea su quale sia lo share per i vari settori dell'informatica (sia in fatturato che numero di impiegati), quindi giudico con la mia poca esperienza personale, fuori e dentro l'università. Sì, C è embedded, ma OP ha detto che è un ingegnere - non so di che tipo - ma così a naso mi sento di dire che embedded è forse una delle cose che potrebbero essere più vicine al suo ambito (o comunque potrebbe aiutarlo nel caso volesse fare un upgrade (o downgrade...) a C++). Sì, C++ è specialistico, ma segue un po' le orme del C: credo sia più probabile avere accheffare con C++ in ambito ingegneristico che in ambito commerciale. Quando ho lavorato con ingegneri (informatici, meccanici e aerospaziali) e fisici, usavano quasi tutti C++. Ma, forse, ero finito proprio in quel mercato specialistico di cui parli :) Sì, Java è un mercato-bordello, ma questo significa anche che c'é molta richiesta. Non tutti devono o possono andare in compagnie super-fiche e skillate come Amazon (perdonami la punzecchiatura :D) e ho sentito, in non pochi casi, di persone laureate (e nemmeno in informatica) che venivano assunte per programmare solo perché avevano fatto un corso base di Java. Credo che da un punto di vista commerciale o di CV sia meglio Java se quello di cui si ha bisogno è un lavoro (non necessariamente figo o appagante... Cosa che farebbe comunque piacere a molti). Poi ho sentito anche tanta gente che lavora con SAS, ma non mi va proprio di consigliarlo :D (anche perché lo conosco molto poco). Ciauz! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] OT: Imparare un altro linguaggio
2016-04-20 13:16 GMT+01:00 Carlo Miron <mi...@python.it>: > 2016-04-20 12:36 GMT+02:00 Alessandro Re <a...@ale-re.net>: > >> Per quanto mi riguarda la scelta di un prossimo linguaggio... Io >> voterei per un linguaggio che ti permetta di imparare paradigmi nuovi >> (specialmente se lo fai per tua passione personale). > > Nick Coghlan qualche giorno fa su [Python-ideas] consigliava: > > | It's also the case that any developer with only one language currently > | in their toolbox (even when that language is Python) is a developer > | with lots of learning opportunities ahead of them: > | > <http://www.curiousefficiency.org/posts/2015/10/languages-to-improve-your-python.html> > Esatto! :) Grazie, ottima risorsa! Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] OT: Imparare un altro linguaggio
2016-04-14 11:43 GMT+01:00 Giovanni Porcari: > Adesso mi faccio uccidere > > http://www.apple.com/it/swift/ > > > :D:D:D Vi interesserà sapere che swift su android non è una possibilità così remota ;) E sì, è già Open Source. https://github.com/apple/swift/blob/master/docs/Android.md Ma notare la FAQ: > Does this mean I can write Android applications in Swift? > > No. [cut] Per quanto mi riguarda la scelta di un prossimo linguaggio... Io voterei per un linguaggio che ti permetta di imparare paradigmi nuovi (specialmente se lo fai per tua passione personale). C, te lo consiglio per giocare coi puntatori. Sono una bella cosa da sapere, secondo me, e li trovo anche molto divertenti. Scheme/LISP, te li consiglio per la programmazione funzionale pura, che è molto divertente anche quella e può aprirti qualche porta mentale che puoi riutilizzare in altri linguaggi moderni (java, python...) Erlang/go, te li consiglio se vuoi divertirti con la concorrenza e il parallelismo. Ho trovato molto belli i paradigmi che usano, e sebbene non usi erlang da un bel po', ancora adoro il pattern matching che usa. Poi oh, vedi te cosa vuoi fartene :) Se devi cercarti un lavoro... Andrei su C/C++/Java. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] GO e le GUI grafiche.
2016-04-14 13:46 GMT+02:00 Gabriele Battaglia: > Ciao a tutti. > Scusate la domanda fuori tema ma... se ne è parlato così tanto che ormai la > lista potrebbe chiamarsi PythonGo, che è anche un'incitazione carina. > A coloro che conoscono le basi del linguaggio chiedo, come è, costruire le > interfacce grafiche, in Windows, usando GO? Il livello di complessità è pari > a quello in Python? Quali e quanto ampia la scelta di librerie per gli > oggetti grafici? In termini di complessità e concisione di linguaggio, quale > fra Python e GO è più immediatamente o facilmente comprensibile? Ciao, anche io mi chiedevo questa cosa ultimamente e - sebbene non mi piaccia molto - credo che la soluzione migliore attualmente sia quella che ha adottato mumax: GUI fatta sul browser. http://mumax.github.io/ Io proverò ad implementare qualcosa di simile nei prossimi giorni, credo. Se vuoi scrivimi pure che ne parliamo. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [OT] Mail di Enrico Bianchi in spam
On Mar 14, 2016 7:41 PM, "Nicola Larosa"wrote: > > Massimiliano Modena wrote: > > OT nell' OT: con la tastiera layout en_US come faccio le lettere > > accentate? > > Se hai Ubuntu usa la tastiera: > > "Italian (US keyboard with Italian letters)" Non solo su Ubuntu per fortuna :) c'è anche su Fedora e molte altre distro per quanto ne so. AltGr + a per à oppure il tasto sotto per l'altro accento AltGr + z per á Funziona con tutte le vocali e hai anche le maiuscole accentate :) Ciauz ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [OT] Mail di Enrico Bianchi in spam
2016-03-14 15:53 GMT+00:00 Davide Muzzarelli: > Per forza che finiscono nello spam, il suo dominio non ha il record SPF e il > suo name server non è nella lista del parent name server. Ah che figata, non sapevo nulla di tutto ciò :D ora mi informo e vedo se può essere utile anche al mio dominio custom. Grazie! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [OT] Mail di Enrico Bianchi in spam
2016-03-14 15:28 GMT+00:00 Kbyte: > Non so se è un problema mio. ma sono mesi che mi sono accorto che > praticamente il 90% dei messaggi di Enrico Bianchi su questa lista finiscono > nella cartella spam di Gmail. > > Altri utenti Gmail che seguono la lista hanno lo stesso problema? Sì, ho dovuto fare un filtro per non farceli finire, e ad ogni sua mail c'é un banner che sostiene che sarebbe dovuto finire tra lo spam. ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] PyQt, QGraphicsTextItem con margine e segfault
Ciao lista :) Volevo postare su SO, ma so che qui ci sono dei bravi pythonisti che mangiano PyQt la mattina a colazione e quindi ho pensato di rallegrare un po' l'atmosfera facendo una domandina a riguardo. L'idea è questa: vorrei avere una scena con dei QGraphicsTextItem, solo che vorrei mettere attorno al testo un pochino di margine. Per vari motivi, voglio creare una nuova classe che se ne occupi. Per mettere i margini, il mio codice fa così: reimplemento boundingRect(), chiamo super().boundingRect() e ci aggiungo un po' di margine. Poi, mi basta disegnare quello stesso rettangolo dentro la paint(), prima di invocare super().paint(). Fin qui, tutto liscio: il bordo viene disegnato senza apparenti problemi. Poi però ho provato ad aggiungere la possibilità di spostare gli elementi col mouse, e questo richiede di implementare shape(). La mia implementazione dovrebbe fare più o meno come quella di default: uso il boundingRect() (inclusivo di margini). Ecco il problema: quando provo a trascinare uno StyledItem che *non contiene testo*, va in segfault. Se invece l'item ha un testo, allora funziona come mi aspetto. Non riesco a capire dove sta il problema. Qualcuno mi aiuta (e mi da qualche dritta su come affrontare il debug in futuri casi come questo)? Per non inquinare la mail di codice mal formattato, un minimal working example lo trovate [qui](https://gist.github.com/akiross/e7a6119a7e622bed9477). BTW, Python 3.4.2, PyQt (QT_VERSION_STRING) 5.5.1. Grazie mille in anticipo! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python Anagram Contest was Tesseract
2016-01-09 17:31 GMT+00:00 Marco Beri <marcob...@gmail.com>: > 2016-01-09 17:09 GMT+01:00 enrico franchi <enrico.fran...@gmail.com>: >> >> Categorie: >> - il piu' corto (lunghezza, wc -c del file) >> - il piu' veloce >> - il piu' efficiente computazionalmente (complessita' computazionale, non >> velocita' pura) >> - il piu' pythonico (stile, PEP8, zen) > > > Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova > ancora tutte :-) > Anche come efficienza non è malaccio, se non fosse che, appunto, non le > trova tutte! :-D Io non so bene per cosa concorro: - la lunghezza la ricavate dal codice (e non ho provato a renderlo corto) - la velocità non ha molto senso comparata su macchine diverse - la complessità computazionale richiede di conoscere i vostri algoritmi - la pythonicità è ancora un concetto che non mi è chiaro XD Ho usato una ricerca esaustiva, eventualmente limitata da un numero di parole (dovrebbe trovarle tutte). Il dizionario è un file di testo, una parola per riga. https://gist.github.com/akiross/9543c83b399664011d5a ./anagram_dfs.py "alessandro re" 2 Quando sarò "Arnaldo Serse" potrò "sondare laser" o "renderla ossa", ma di sicuro non "renderò salsa" fatta di "sarde salerno" (e nemmeno con "sarde orleans"). Qualunque cosa questo voglia dire. Ciauz! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Offerta di lavoro
Ciao Lista, giro la mail di un mio conoscente, che lavora per un progetto chiamato Quantum ESPRESSO, e stanno cercando un programmatore python capace. Se siete interessati, credo possiate scrivere all'azienda attraverso il sito. Non scrivete a me che io non c'entro (a parte essere alterato perché attualmente non posso applicare per motivi di distanza geografica). Ecco l'annuncio Ciauz ~Ale We are looking for an experienced programmer, fluent in python and xml, to participate in a EU-funded project aiming at modularizing Quantum ESPRESSO (http://www.quantum-espresso.org) and integrating it with other scientific softwares and user interfaces. A physics/chemistry background would be a plus, but not strictly requested. We offer a decent salary (of up to 2100 EUR/month after taxes and social security, depending on qualifications and prior experience) and a starting contract of up to 30 months, renewable under certain conditions. Position is available at SISSA (Trieste, Italy). More datails are obviously avaliable upon request. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Dimmi tre libri informatici che non si può non aver letto
2015-11-29 16:50 GMT+00:00 Marco Beri: > Mi hanno fatto questa bella domanda e io ho risposto così: > > 1) Peopleware > 2) Clean Code: A Handbook of Agile Software Craftsmanship > 3) The Mythical Man-Month > > E voi? Cosa rispondereste? Io ho un elenco un po' troppo specializzato, e non me la sento di dire che ogni informatico debba leggere libri su C++ o OpenGL o sull'AI, ma credo che ogni informatico dovrebbe avere una base robusta sugli algoritmi: Introduction to Algorithms (Cormen, Leiserson, Rivest, Stein) E forse un altro libro veramente bello sui programmi che in un certo senso è generalista (anche se usa Scheme) è: Structure and Interpretation of Computer Programs (Abelson e Sussman(s)) E credo ogni informatico che si rispetti dovrebbe avere anche una buona base matematica (discreta e continua), statistica e probabilistica. Ma vabé, forse sono un po' off-topic qui e non mi dilungo con gli elenchi. E poi non sono "libri di informatica", anche se c'entrano molto con la mia idea di "informatico ideale". Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [graphql] interessante alternativa/evoluzione rispetto al REST
2015-10-03 12:56 GMT+01:00 enrico franchi: > > 2015-10-02 18:10 GMT+01:00 m : >> >> sono l'unico a cui sta sul cazzo[1] il fatto che la parola 'isomorfismo', >> che ha un significato preciso in matematica, sia stata presa e usata a >> sproposito ? > > > No. Non sei l'unico. Ad essere sinceri anche nella community il termine non > piace a molti e cercano alternative. E questo, ragazzi, è il motivo per cui si dice che la matematica, un giorno, potrebbe esservi utile :D Grazie Enrico per questo bel ripasso di algebra e topologia. Comunque, sebbene il tuo salumiere deve essere piuttosto skillato (e, d'altronde, non mi sarei aspettato altrimenti), al mio salumiere gli isomorfismi topologici li spiego dicendo che un toro e una tazza hanno sostanzialmente la stessa forma... Lui mi guarda male, però. E ti dirò, il salumiere mi guarda anche peggio quando gli dico che un toro è una ciambella (a quanto pare non c'é mercato per bistecche di ciambella). Per rispondere alla domanda originale: onestamente non credo di aver mai sentito la parola "isomorfismo" usata fuori dal contesto matematico (prima di leggere questo thread)... Sarà perché non uso javascript (e ne sono felicissimo)? :D Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Tutorial su FUSE
2015-09-30 22:11 GMT+01:00 Marco Paolini: > Voglio dire il config file di nginx lo metto su un mount fuse e non appena > nginx tenta di aprirlo, io creo al volo il config file da python prendendo > per esempio delle informazioni da variabili di ambiente... > > è troppo un accrocchio? Ah guarda, per me non è un accrocchio, ma una soluzione piuttosto divertente :D E dipende abbastanza per cosa ti serve... Ma mi chiedo: quali sono le alternative? Quanto stabili sono? Quanto sono manutenibili? Quali requisiti hanno? È necessario passare per fuse? Perché se devi far partire nginx (che non conosco) in un container usando ogni volta un file di configurazione diverso, allora forse è più lineare se fai uno script che genera il file e lancia il server ogni volta: mi sembra più semplice e meno prone ad errori. Se invece il server deve sempre restare attivo e ogni tanto per qualche motivo deve cambiare configurazione e l'unico modo è leggere lo stesso file, allora passare per fuse potrebbe anche aver senso. E grazie per il consiglio sul try, in effetti non avevo pensato al finally! Ciauz! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Tutorial su FUSE
Ciao lista, mi faccio della pubblicità (cosa che non mi piace mai fare, perché temo le conseguenze dei miei errori :D), e vi condivido un tutorial che ho scritto su llfuse. llfuse è una libreria per python che permette di creare filesystem con fuse, usando le API di basso livello. Se qualcuno fosse esperto con queste belle cose, qualunque feedback (incluso "fa cagare" + giustificazione) mi farebbe piacere. Se invece non siete esperti con fuse, per me vale la pena di dargli un'occhiata perché è un concetto molto carino :) https://gist.github.com/akiross/3d7952b186d523c61cbc Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] È stato rilasciato Python 3.5
2015-09-15 10:15 GMT+01:00 Enrico Bianchi: > On 09/15/2015 06:44 AM, Pietro wrote: >> >> https://docs.python.org/3.5/whatsnew/3.5.html Non ne ero al corrente, grazie! > Come dicevo su altri lidi, sempre saremo grati per l'integrazione della PEP > 441 e dela PEP 471 ;) Interessanti in effetti :) Anche se personalmente è un po' che sono interessato alle async/await. Non so ancora una beata fava su tutto questo, anche perché la mia impressione è che per lo più venga usato in ambito web - che io ignoro - però mi incuriosisce molto dal punto di vista dello sviluppo delle GUI... Magari un giorno o l'altro mi ci metto, prendo SDL* e mi studio questa possibilità per i fatti miei, ma se ci fosse già qualcosa mi interesserebbe studiarlo un po'. Ciauz! ~Ale (*) Perché è l'unica libreria che conosco dove devi scriverti il tuo main loop, anche se in effetti ne esistono molte altre (più grosse e pesanti, magari) in cui *puoi* comunque farlo. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] È stato rilasciato Python 3.5
2015-09-15 13:29 GMT+01:00 Nicola Larosa <n...@teknico.net>: > Alessandro Re wrote: >> Anche se personalmente è un po' che sono interessato alle >> async/await. > > Appena introdotte nella 3.5 Sì, ho letto, ma era un po' che le aspettavo eheh Comunque grazie molte per tutte le varie risorse: la mia carenza non era tanto sul modello, quanto alla sua implementazione in python 3.5 (cosa sono queste nuove async/await e come si comportano?) e sul modulo asyncio, ma le risorse che hai linkato sono molto interessanti e me le leggerò con calma :) E visto che in questi ultimi giorni mi sto proprio studiando golang (bello!!), apprezzo molto anche il link su quello. Grazie mille! Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Consiglio per realizzazione GUI
On Jul 18, 2015 10:55 PM, Fundor333 fundor...@gmail.com wrote: Personalmente lo consiglio perché permette di creare sia GUI molto semplici che molto complesse senza enormi sforzi Non voglio criticare il consiglio di usare qt, perché è la mia libreria di riferimento quando faccio GUI, ma volevo criticare questa frase che ho citato: no, quando la GUI è molto complessa, non c'è toolkit che tenga :p mi spiace, ma con qt è facile fare cose semplici e meno incasinato fare quelle complesse... Ma rimangono comunque incasinate :D enormi sforzi è un po' relativo... Qt ha tante cose già fatte, belle, pronte e ben organizzate, ma non è magia: se il problema è complesso, rimane complesso. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Parere su Go di un professore di informatica (delle superiori) nonche' uno dei fondatori di ERLUG
On Jul 12, 2015 6:58 PM, enrico franchi enrico.fran...@gmail.com wrote: Io posso dire che Python sufficientemente vecchio era molto leggibile. Leggibile perche' aveva meno features e soprattutto meno features complesse. Piano piano le hanno aggiunte, e' tutta roba molto potente e interessante, ma alla fine dei conti e' anche tutta roba che rende il codice relativamente troppo complicato da capire per essere considerato leggibile. Intervengo per un piccolo commento: credo di aver capito cosa intendi, ma secondo me la complessità e la leggibilità di un linguaggio non sono legate in quel senso. Un linguaggio leggibile è leggibile sempre, anche se trovare bachi alle 3 di notte può essere complesso. La leggibilità penso che sia legata anche alla capacità del linguaggio di presentarsi in modo familiare e intuitivo, anche attraverso della complessità che nasconde dettagli non rilevanti alla comprensione generale. Faccio un esempio scemo: il costrutto with è molto utile e potente. Ciò che ci sta dietro è relativamente complesso (NB è un esempio scemo!) e di fatto la complessità viene mascherata dal costrutto e dalle magie che ci son dietro. Ora, se uno nasconde una cosa molto complessa dietro with, magari debuggers alle 3 di notte è una menata perché tu *sai* che c'è dietro della complessità e che magari il baco sta lì. Però guardare il codice è capire che with ti crea un contesto che viene aperto e chiuso è un concetto piuttosto immediato, quindi quando leggi il codice capisci in fretta cosa si cerca di fare. Forse tu parli di leggibile ma vuoi dire palese o esplicito mentre io dico veloce farsi un'idea. Però questo non vuol dire che non ci possa essere dietro della complessità che viene nascosta per rendere, appunto, tutti leggibile. Se ho fatto typos è perché son dal cellulare, abbiate pazienza :p ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] piccolo editor con autocompletamento del codice
2015-07-06 16:26 GMT+01:00 germano carella germano.care...@gmail.com: class prova(object): def __init__(self): self.l = list() self.l. # e qui mi dovrebbero comparire i membri di list, che però giustamente non compaiono, perché la console non ha finito di eseguire il codice. Ciao, devo essere sincero: non ho letto attentamente la tua domanda, e non conosco rlcompleter (quindi probabilmente questa è una risposta inutile o che non ti interessa), ma io ho un pochino di esperienza con un completer molto bello che si chiama Jedi (https://github.com/davidhalter/jedi) - che non so se va su python per .net - ma di sicuro copre il caso che hai messo qui sopra nello snippet. In generale, Jedi può (provare a) fare completion anche su codice incompleto o parzialmente sbagliato. Non credo di poter essere molto più utile di così (a parte fornirti un codice di esempio su come uso Jedi), sorry :) Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] piccolo editor con autocompletamento del codice
2015-07-06 19:03 GMT+01:00 germano carella germano.care...@gmail.com: L'ho provato, è fantastico!!! ho già fatto la prova col mio esempio e funzionissima! Grazie mille, mi hai aperto un mondo... Ciao! Ottimo :) Se vuoi postare il tuo esempio qui sulla lista, magari puoi essere di aiuto a qualcuno. Io ho usato Jedi in un mio progettino per fare una shell interattiva [1], ma non credo che cambi molto il principio di utilizzo per un editor. Aggiungo una cosa, non pertinente alla domanda originale, ma rilevante: per favore, quando rispondi alle email, usa il bottom posting, e non il top posting [2]. [1]: https://github.com/akiross/pypaper/blob/master/PyPaper/core/pypaper.py [2]: https://en.wikipedia.org/wiki/Posting_style#Bottom-posting Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] PyQt vs PySide
2015-07-03 8:55 GMT+01:00 Kbyte kb...@snowpenguin.org: Sul wiki delle QT ho letto un po' di informazioni su PySide. Io però mi chiedo, questo binding è effettivamente sviluppato o è sulla via della morte? Attualmente mi capita di sviluppare con QT5 + Python3 e già sarei tagliato fuori, però sono sempre attento a nuove possibilità :P Per vari motivi io preferirei usare PySide, ma onestamente mi sembra che quelli di Qt non si siano mai cagati troppo Python... E PySide non mi sembra affatto in buono stato, almeno l'ultima volta che ho guardato. Anche io uso Qt5 + Python 3 e non ho avuto molta scelta. Se non hai problemi di licenza, che alla fine è l'unico problema grosso di PyQt (è GPL e quindi se la usi anche il tuo software deve essere GPL), allora vai pure con quello. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] \b e \r in file di testo
On Jun 26, 2015 9:30 AM, enrico franchi enrico.fran...@gmail.com wrote: Grazie della fiducia, ma qui il disclaimer e' importante. Intanto la teoria di cui si parla e' roba che studiai davvero tipo 12 anni fa (quindi ci sono innumerevoli problemi di cache miss). Questo rende la cosa ancor più sorprendente :) la mia conoscenza dei linguaggi formali non è molto estesa (mi fermo a sapere cos'è il pumping lemma, per dire), ma la parte che ti invidio maggiormente è la capacità di collegarla all'effettiva implementazione e applicazione nei linguaggi di programmazione reali - che sostanzialmente non ho. Ma mentre la teoria si studia e, a seconda del cervello, la si ricorda o meno, la capacità di applicarla di solito è dovuta alla... Pratica! Quindi volevo chiederti, da dove deriva tutta questa conoscenza? Ti occupi di compilatori? Hai fatto un phd sul tema? Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Domanda
2015-06-25 10:11 GMT+01:00 enrico franchi enrico.fran...@gmail.com: 2015-06-25 10:08 GMT+01:00 Nicoletta Siclari ni...@hotmail.it: Tutto ciò che trovo in italiano su internet è per altri linguaggi di programmazione! Dimentica la documentazione in italiano. Anche nella migliore delle ipotesi e' meno aggiornata e meno completa della documentazione che trovi in inglese. Concordo con Enrico: spesso le cose migliori e più aggiornate sono in inglese. Comunque c'é qualche libro in italiano, e gli autori di questi libri leggono e scrivono anche in questa mailing list. Dato che loro non possono farsi pubblicità (ahahaha), gliela faccio io :P http://www.apogeonline.com/libri/9788850329151/scheda http://www.amazon.com/Programmare-Python-Guida-completa-Marco/dp/8868950243 Se invece mastichi l'inglese, Dive Into Python 3 secondo me è un buon inizio: www.diveintopython3.net (Se non lo mastichi, imparalo :P) Ti consiglio di iniziare a studiare Python3 e dimenticare (per ora, magari per sempre) Python2. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Domanda
On Jun 25, 2015 10:04 AM, Nicoletta Siclari ni...@hotmail.it wrote: Salve, Mi sono appena iscritta e , se non ho capito male, posso porre una domanda riguardante un problema a questo indirizzo email.4 In caso contrario mi scuso anticipatamente, Grazie. Sì, esatto. Benvenuta! ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Errore di semantica -
@Marco Beri, ahaha ti stavi giustificando per le tue scappatelle al casinò? :D Io non ci sono mai stato, ma potrei andarci. E ovviamente ci andrei per lo stesso motivo: per divertirmi, non per vincere... Quella sarebbe un'illusione. La consapevolezza che il banco giochi con la matematica a suo favore, mi appartiene. Sono consapevole, quindi, che chi gli giochi contro è in svantaggio rispetto alle aspettative di vincita a suo favore. Ne sono così convinto, Non ne sei troppo convinto se cerchi di vincere usando una strategia come quella che esponi qui sotto :) Se il banco vince sempre, vuol dire che vince sempre, non sempre a meno di un giocatore intelligente. Quindi, la tua strategia è quella di dire: aspetto un evento che è più probabile che esca, tipo l'uscita di un numero/colonna ritardatario/a. Poi dopo un certo numero di volte che non esce, inizio a puntare. Se perdo, la volta dopo punto il doppio, così mi ripago delle perdite precedenti, e avanti così. Marco ha già dato una risposta, ma io - che ho un debole per il calcolo delle probabilità - aggiungerò altro. La tua strategia non è nuova, e anzi esiste dal 1700... È abbastanza naturale, secondo me, arrivare a questa idea, e persino io quando ho studiato i giochi d'azzardo ci sono arrivato (solo che non ho dovuto fare un programma per convincermi che non era fattibile :D). Il concetto si chiama Martingala: https://it.wikipedia.org/wiki/Martingala_%28matematica%29 https://en.wikipedia.org/wiki/Martingale_%28betting_system%29 L'osservazione fondamentale è: la strategia funziona se hai il portafoglio illimitato. Ovvero: non puoi viverci. Ovvero: se hai tanti soldi puoi bilanciare la sfiga fino ad un certo punto, ma non puoi arricchirti. E comunque se hai tanti soldi non vai al casinò per farne altri. L'osservazione pratica è: se esiste dal 1700 e i casinò esistono ancora e vincono ancora, significa che empiricamente non funziona :) Per quanto riguarda i numeri ritardatari... Gianluca ha fatto un discorso che ha senso dal punto di vista della distribuzione, che è interessante, e ha centrato il punto: tutti i numeri hanno, ad ogni giocata, la stessa probabilità di essere estratti. Questo vuol dire che fondamentalmente puoi applicare la tua strategia anche appena arrivi al banco, senza tener conto dei ritardatari. Il concetto a cui fai riferimento, cioé prima o poi deve uscire, che è ciò che spinge a studiare i numeri ritardatari, è valida: solo che la legge dei grandi numeri è, appunto, sui grandi numeri, che non sono 20 giocate, ma sono - di solito - almeno 30. Non puoi raddoppiare abbastanza volte da avere un margine di sicurezza sensato per giocare, semplicemente perché c'é un limite alla posta. Divertiti pure a programmare, ma sappi che la strategia non ti porterà da nessuna parte (a parte una piccola soddisfazione intellettuale, certo, ma da quel che leggo sembra che tu ambisca a vincere qualche soldino). Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] \b e \r in file di testo
2015-06-21 20:12 GMT+01:00 enrico franchi enrico.fran...@gmail.com: Porca vacca, non mi ero accorto di questa risposta interessante! C'e' una leggera sottigliezza che pero' e' chiave. Intanto i linguaggi di programmazione per la maggior parte *non* sono context-free. Punto e fine della fiera. Questa mi ha un po' sorpreso, ma nel senso che sono ignorante in materia e quindi non avrei mai saputo dare una statistica. Ma la domanda che mi scatta immediatamente è: parli in generale (includendo anche DSL e tutti i linguaggetti del mondo che i vari programmatori inventano un giorno sì e l'altro anche per qualsivoglia motivo) o ti riferisci ai linguaggi general purpose (o ad un loro subset)? Tra l'altro, per non essere troppo OT, sbaglio o Python ha come scelta di design quella di essere context free? Oppure anche il nostro amato linguaggio ricade nella categoria dei CFG + epsilon? In altre parole, Alessandro, hai spiegato bene perche' e' complicato parsare Tex, pero' di per se quella e' solo una parte del problema: l'assenza di modularita' nel compilatore ufficiale e' quello che chiude il cerchio del macello. Non sapevo questa cosa, ma non so perché non mi sorprende :D Detto questo, credo che ad oggi molti documenti siano puro latex che non chiamano direttamente tex. E, sempre che io sappia (ma non sono certo) latex, fintanto che non usa direttamente tex, e' sensibilmente piu' semplice. Quindi e' vero che una libreria che deve gestire tex arbitrario e' un incubo, ma forse una libreria che gestisce latex e un subset ristretto di tex potrebbe coprire il 95% degli utilizzi con uno sforzo che e' il 5% di quello per re-implementare completamente un front-end per tex. Ecco un'altra cosa che mi sorprende, per ignoranza: io conoscevo LaTeX come un insieme di macro costruite su TeX e quindi pensavo che passare per TeX fosse necessario, ma ammetto che la mia conoscenza dell'argomento TeX/LaTeX è *veramente* limitata. Grazie 10**6 :) ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Errore di semantica -
2015-06-24 20:41 GMT+01:00 Carpediem i.carped...@tiscali.it: Ciao Alessandro, innanzitutto grazie infinite. La tua risposta non solo mi ha risolto il problema ma mi ha aperto molti altri orizzonti: quello sopra, è uno di questi ma, come avrai capito, sono alle prime armi con python e lavorando per 9 ore al giorno per 6 giornia settimana, i miei progressi sono molto lenti. Ho molte idee per la testa e provo a metterle in pratica con quel poco che ho finora acquisito. Quanto sopra, mi piace molto. Ciao, sì, avevo intuito e per questo ti ho dato qualche consiglio di altro tipo :) Bene se ti è utile. Qui non ti seguo: in realtà il mio codice prevede una ulteriore lista di altre 65 variabili (che mi sono risparmiato dal riportare) e sinceramente, ritengo l'insieme troppo lungo per scriverlo riga per riga) Ok, è questione di gusti :) Comunque, dato che hai diverse stringhe composte tipo carre 1a3, carre 2a6, oppure prima sestina, seconda sestina, prima colonna, seconda colonna, potresti anche valutare, per risparmiare righe, di costruire quelle frasi in modo algoritmico (dove puoi). Quindi, per esempio, per le prime 3 colonne e 3 sestine puoi fare: def genera_combinazioni(parole_prima, parole_seconda): return tuple(' '.join(x) for x in product(parole_prima.split(), parole_seconda.split())) genera_combinazioni('prima seconda terza', 'prima seconda') per ottenere ('prima sestina', 'prima colonna', 'seconda sestina', 'seconda colonna', 'terza sestina', 'terza colonna') Ora, questo metodo ti può salvare qualche riga e qualche errore di battitura (o moltiplicarli :D), ma non credo sia davvero conveniente nel tuo caso. Per evitare la bruttezza nel codice, e anche per facilitare la traduzione in altre lingue, di solito si usa mettere tutte le stringhe in un file (uno per ogni lingua da tradurre) e, nel tuo codice, leggere quel file. Nel tuo caso, mettere le stringhe in un file semplifica molto la lettura del codice, però hai lo svantaggio di dover aver sempre dietro il file in questione. Per leggere il file ed ottenere una tupla, dove ogni riga è una stringa, basta fare: with open('file_stringhe.txt') as fp: puntate_possibili = tuple(line.strip() for line in fp) attento che usare .strip() rimuove tutti gli spazi (incluse le new line) a destra e a sinistra della stringa, ti dico questa cosa, ma probabilmente ti va benissimo così :) E qui casca l'asino L'errore era proprio questo e a questo punto non si trattava quindi di un errore di semantica. Non riesco ancora bene a spiegarmi il perchè al primo passaggio in effetti il valore della variabile aumenti di una unità (così come da me voluto) e poi tale valore resti invariato al passsaggio successivo Il punto è che la variabile viene messa *sempre* a 1 da quel codice, quindi se devi passare da 0 a 1 il codice funziona, ma se devi passare da 1 a 2 o da N a N+1, non funzionerà :) nè capisco perchè python preveda, a questo punto, l'utilizzo di una forma di scrittura così come involontariamente io l'abbia scritta. Ad ogni modo, per non sbagliare, +1 = forever Aspetta, forse ho capito male, ma +1 = è sbagliato in python: attento a non confondere il + di +1 col segno positivo (contrapposto al segno negativo dei numeri -1, -2, -3...), al fatto che l'operatore += è composto da due caratteri. Scrivere (metto gli spazi per farti capire quali sono le entità in gioco) A+=B è come scrivere A=A + B Se scrivi A+=B hai errore: += è un operatore vero e proprio e deve essere scritto attaccato. Invece, il + che precede un numero per indicare il segno positivo, può essere separato. Scrivere A += + B ha perfettamente senso, e il secondo + davanti a B è solo ridondante... Fondamentalmente, python permette di scrivere A =+1 perché +1 è un numero, e lo spazio tra l'uguale e il numero +1 non ha importanza :) A=1, A = 1, A=+ 1, A = + 1 son tutte cose uguali. Insomma, tu devi scrivere qualcosa come [variabile] [operatore] [valore] variabile è uscita_manque operatore è += (senza spazi) valore è 1 (o +1, è indifferente) se scrivi uscita_manque +1 = ottieni [variabile] [valore] [operatore] che in Python non funziona. Comunque, ti ho scritto 'sta spataffiata perché hai scritto +1 =, ma magari avevi già capito. Se vuoi toglierti ogni dubbio usa variabile = variabile + valore e vivi felice :D Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Errore di semantica -
2015-06-24 0:19 GMT+01:00 Carpediem i.carped...@tiscali.it: Ho seguito i passaggi uno ad uno anche con carta e penna, ho modificato il codice più volte ma alla fine ottengo sempre lo stesso non voluto risultato. Mi aiutate a capire? Ciao, ti dirò dove secondo me stai sbagliando, anche se non conosco la roulette. E non solo ti dirò dove sbagli per l'errore che descrivi, ma per gli altri mille peccati capitali che hai commesso nel codice :D ahahah uscita_passe = 0 uscita_manque = 0 scommessa_semplice = (passe,manque) scommessa_passe = 0 scommessa_manque = 0 tutti_i_numeri = (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24! ,25,26,27,28,29,30,31,32,33,34,35,36) Se la roulette avesse avuto 1 numeri cosa facevi, li elencavi uno per uno? :P Usa tuple(range(37)) anziché quell'elenco che hai scrtto. passe = (19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36) manque = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18) Per questi usa tuple(range(19, 37)) e tuple(range(1, 19)). liste_in_ritardo = [] puntate_possibili = (passe,manque,pari,dispari,nero,rosso,prima dozzina,seconda dozzina,terza dozzina,prima colonna,seconda colonna,terza colonna,prima sestina,seconda sestina,terz a sestina,quarta sestina,quinta sestina,sesta sestina,\ settima sestina,ottava sestina,nona sestina,decima sestina,undicesima sestina,quattro primi,carre 1a5,carre 2a6,carre 4a8,carre 5a9,carre 7a11,carre 8a12,carre 10a14,carre 11a15,carre 13a17,carre 14a18,carre 16a20,carre 17a21,\ carre 19a23,carre 20a24,carre 22a26,carre 23a27,carre 25a29,carre 26a30,carre 28a32,carre 29a33,carre 31a35,carre 32a36) Questa sfilza di stringhe potresti formattarla meglio, come ad esempio puntate_possibili = ( passe, manque, pari, dispari, nero, rosso, prima ecc, anche se esce una cosa lunghissima, personalmente preferisco un codice più lungo e leggibile che di qualche riga in meno e che mi fa incrociare gli occhi. print(Attenzione: stiamo facendo riferimento alle regole della Roulette francese.) print(Si presuppone, come previsto ad esempio al Casino' di Venezia, che la puntata minima accettata \nsia di 10 Euro e la massima di 600. Si ritiene scontato, inoltre, che il giocatore\nsegua rigorosamente i suggerimenti che verranno evidenziati dal programma.) print() Ho notato che usi un sacco di print(); non voglio dirti che è una cosa brutta, ma personalmente non mi piace mischiare gli stili: o usi una print per ogni riga, o usi \n in una print sola. Io andrei di una print per ogni riga. Ti consiglio, molto umilmente, di adottare uno stile ed essere coerente ad esso. capitale_disponibile = eval(input(Per cominciare, indicami l'importo che intendi mettere a disposizione per il gioco (si consiglia almeno 2500 Euro) )) eval(input()) è una cosa che vuoi evitare quasi sempre. Non usarlo. Usa int(input()) se vuoi ottenere un intero oppure usa usa ast.literal_eval(input()). https://docs.python.org/3/library/ast.html#ast.literal_eval print(Giocata+(( )*17),ritardi di uscita+(( )*6),Giocata+(( )*17),ritardi di uscita+(( )*8)) Esistono opzioni migliori per formattare incolonnando. Esempio: print('Valore: {:12} Valore {:8}'.format(4, 123)) Usa format() e tutte le sue belle opzionI: https://docs.python.org/3.3/library/string.html#formatstrings if numero_uscito in passe: Se passe e manque e tutti_i_numeri li usi solo per tenere elenchi di numeri, puoi fare 2 cose per migliorare il tuo codice: 1. usare set() anziché tuple(). Set è molto più veloce per vedere se un elemento è al suo interno, rispetto a tuple, e la sintassi valore in insieme è invariata e molto gradevole da leggere. Quindi, anziché usare tuple(range(37)), usa set(range(37)). Se, invece, la tupla ti serve perché è ordinata (set non preserva l'ordine), allora tieni la tupla. 2. Se hai degli intervalli numerici e devi verificare se sei in tali intervalli, non usare né tuple né set. Usa gli operatori =, e magari definisci un paio di funzioni per leggere meglio: def in_passe(n): return 19 = n = 36 if in_passe(numero_uscito): etc uscita_manque =+1 E questa riga credo sia l'origine del tuo baco. Più volte nel codice scrivi variabile =+1 e secondo me tu stai cercando di ottenere variabile = variabile + 1 ma forse non sai, o non ti sei accorto, che l'operatore += è ben diverso dai due operatori =+. a += b vuol dire a = a + b a =+ b vuol dire a = (+b) cioé a = b (+ indica il segno del numero). prosegui_gioco = input(Vuoi continuare a giocare? si/no ) if prosegui_gioco == si: ultimo appunto: in genere è buona cosa fare controllo indipendenti dalle maiuscole e dalle minuscole. Quindi: prosegui_gioco = input('Blah).lower() così se l'utente inserisce SI o Si, il codice funziona comunque e non è necessario scrivere tutto in minuscolo. Spero di averti risolto il problema e ti averti dato qualche dritta :P Ciauz ~Ale
Re: [Python] \b e \r in file di testo
2015-06-13 18:31 GMT+01:00 Matteo Scarpa matteoscarp...@gmail.com: Perchè io ho trovato un repository github per la gestione del LaTeX in python ma da quanto vedo non permette la modifica ma solo la generazione dei file LaTeX: https://github.com/JelteF/PyLaTeX . Darò un'informazione forse interessante e sicuramente non richiesta, dato che anche io mi son trovato nella situazione di dover scrivere uno script per modificare un file LaTeX. Purtroppo, sembra che per fare il parsing di uno script LaTeX non sia sufficiente un normale parser, quindi - fondamentalmente - modificare un generico sorgente di latex potrebbe essere molto complicato. Più specificatamente, *per il parsing* di TeX è necessaria una macchina di Turing e non basta un automa a pila. Ecco perché non è tanto facile trovare delle librerie che modifichino un qualunque sorgente LaTeX. http://tex.stackexchange.com/questions/4201/is-there-a-bnf-grammar-of-the-tex-language Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] xkcd password
2015-06-11 10:21 GMT+01:00 Marco Beri marcob...@gmail.com: On Jun 11, 2015 11:06 AM, Alessandro Re a...@ale-re.net wrote: Se prendiamo 4 parole a caso, non bisogna contare il numero di lettere per calcolare l'entropia, perché l'alfabeto non saranno più le lettere, ma le parole. Quindi 2048^4 = 1.7e13 Esattamente. 2**44. Eh sì, ma anche con 50 caratteri e 10 lettere ci arrivi a quel numero di combinazioni, era questo il mio punto :\ 26 lettere * 2 (maiuscole e minuscole) = 52, senza neanche metterci i numeri sono 52^10 = 1.44e17, per cui comunque valgono I conti che hai riportato (o sto facendo errori grossolani di cui non mi accorgo?) Ad esempio, la mia password gmail é: g4tto m0lla s3dicente r1nforzo Bugiardo!!! Ahaha! Chissà... Dovresti provare, ma chissà su quale account di gmail la sto usando! O:) e la regola per rendere inutile la ricerca per parole è di sostituire la prima vocale (4-3-1-0-U), che non è una regola molto difficile da ricordare, basta che un utente si inventa la sua regola e la usi sempre. Però basta che una delle password diventi nota e la tua regola non serve più. È vero, ma a parte che per scoprirla bisogna romperla o azzeccarla, ma anche se la si scoprisse, rimangono le 4-5 parole scelte a caso da indovinare ogni volta, quindi sarebbe solo un valore aggiunto (e, secondo me, di facile memorizzazione). Comunque il vantaggio della strategia XKCD è il fatto che siano password facili da ricordare: le mie erano solo considerazioni numeriche :) C'é da dire che la difficoltà di rompere una password cresce molto più in fretta se l'alfabeto è di 2000 caratteri piuttosto che di 50, quindi 5 parole fanno molta più differenza che 11 caratteri. Ah, ci sono siti che non permettono di avere password troppo lunghe (e con questo intendo non più di 12/16/20 caratteri). Bizzarro, ma purtroppo ancora vero. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] xkcd password
2015-06-11 9:44 GMT+01:00 Marco Beri marcob...@gmail.com: Per chi vuole usarlo con un dizionario italiano, usi una versione ridotta con solo almeno 2**11 (2048) parole più comuni. Ora, coi numeri non sono il massimo esperto, e premetto che non ho visto il codice dell'OP, ma se si usano 2048 parole per generare password a caso, significa che si sposta il problema di generare una password con alfabeti di circa 50 lettere a generare password con alfabeti di 2048 lettere. Se prendiamo 4 parole a caso, non bisogna contare il numero di lettere per calcolare l'entropia, perché l'alfabeto non saranno più le lettere, ma le parole. Quindi 2048^4 = 1.7e13, mentre 50^10 = 9.7e16. Invece 2048^5 = 3.6e16 che è comparabile. Comunque il punto è che forse usare parole anziché lettere non sposta il problema, perché è sufficiente generare password usando un bruteforce di parole anziché di lettere, rendendo abbastanza inutile tutta l'idea di fondo. Forse una cosa utile da fare è rendere inutile un approccio di ricerca basato sui dizionari, mettendo dentro lettere a caso... Certo, sarebbe comunque difficile da ricordare per gli umani, ma almeno avrebbe più senso numericamente. Ad esempio, la mia password gmail é: g4tto m0lla s3dicente r1nforzo e la regola per rendere inutile la ricerca per parole è di sostituire la prima vocale (4-3-1-0-U), che non è una regola molto difficile da ricordare, basta che un utente si inventa la sua regola e la usi sempre. E questo rende davvero difficile la ricerca, perché non si sa quante variazioni di gatto ci siano: GATTO, Gatto, G4770 etc, quindi il dizionario cresce di molto... Da 2000 parole a 20k parole, e quindi 20e4^4 = 1.6e17, che batte entrambe le combinazioni di prima. Bho, spero di essermi fatto capire anche se ho buttato lì termini un po' a caso (alfabeti, combinazioni, etc). Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] presentazioni
2015-06-11 10:10 GMT+01:00 damiano bassani damiano.bass...@gmail.com: Sono Damiano mi sono iscritto proprio recentemente alla mailing list e quindi ecco il motivo della mia presentazione. Ciao Damiano, benvenuto! Sono un bioinformatico (cut) Urca... E lo dici così? Mi dispiace molto :D ahaha scherzo, bevenuto :) ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Mono in Unity 3D, Opus, FLAC (era: Re: Sviluppare in python 2 o python 3)
Scusate, forse mi è partita una mail a vuoto (google inbox è figo sotto certi aspetti, fa cagare sotto molti altri). 2015-06-09 9:39 GMT+01:00 Nicola Larosa n...@teknico.net: Carlos Catucci wrote: Mono e' un'anatra zoppa. E' sempre li a correre dietro per fare rev eng sulle cose che fa .NET. Pensavo anch'io. Poi ho scoperto che Mono è usato come motore di scripting da Unity 3D: Nicola, scusa l'osservazione, ma non vedo il nesso: essere usato per lo scripting di Unity (o mille altre cose) è indipendente dal fatto che Mono cerchi di star dietro a .Net. Non credo che si stesse parlando della scarsa qualità del codice o di lentezza o di altre cose (che quindi ne precludono l'uso in ambienti di alta qualità, come Unity), ma del fatto che è un prodotto che nasce dipendente da qualcos'altro: un'anatra, che però manca di totale autonomia, quindi zoppa. Se mi si perdona il paragone, è un po' come Jython, Pypy o le altre: nascono per star dietro all'implementazione di riferimento. Sotto certi aspetti (e non tutti, ovviamente), saranno sempre indietro. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Mono in Unity 3D, Opus, FLAC (era: Re: Sviluppare in python 2 o python 3)
On Tue, Jun 9, 2015 at 9:43 AM Carlos Catucci carlos.catu...@gmail.com wrote: 2015-06-09 10:39 GMT+02:00 Nicola Larosa n...@teknico.net: Tra l'altro, se state ancora usando Ogg Vorbis Io lo uso per questoni affettive: uno dei suoi creatori (nonche' creatore anche di Dynebolic) e' un mio carissimo amico e uno dei ragazzi che ho tirato su a suo tempo (ovviamente come giusto gli allievi hanno surclassato l'insegnante) Carlos -- EZLN ... Para Todos Todo ... Nada para nosotros ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Sviluppare in python 2 o python 3
On Mon, Jun 8, 2015 at 8:42 PM Matteo Scarpa matteoscarp...@gmail.com wrote: Sperando di non creare piú danni di quelli che ho ottenuto chiedendo al prof di sistemi operativi cosa fosse meglio tra i sistemi Unix e .Net Ma .Net non è un framework di sviluppo? Mi sento un sacco ignorante perché non cago windows da così tanto tempo (perché ovviamente *nix È Meglio) che ero rimasto alla famiglia NT. volevo togliermi un dubbio: perché si sviluppano ancora applicazioni in python 2.qualcosa (ovviamente a meno di necessitá particolari tipo la libreria c'é solo per quella specifica versione) ripsetto che a una 3,qualcosa? É una cosa prettamente di guisti/abitudine o c´é qualcosa sotto? TL;DR version: costa troppo. Versione lunga: La Risposta Giusta è che è una questione di costi. Ed è anche molto generica, perché costo non vuol dire solo soldi, ma anche fatica, tempo, preferenze personali. Di sicuro c'é che la 2.x ha molta più storia alle spalle e quindi (stimo) più supporto, più documentazione, più tutto. Anche, banalmente, più probabilità di trovare un tutorial per la versione 2.x che per la 3.x cercando su google, o risposte ad un problema su stackoverflow, etc. Io ho usato la 3 sin da subito, e ti garantisco che nei primi tempi era davvero una fatica cercare supporto per Python 3. Non tutti hanno tanta voglia come me di sentirmi bleeding edge, e quindi aspettano che i tempi siano maturi. Ora siamo a 3.5, è matura, è in campo da tanto tempo, ma ci sono ancora un po' di cosette da limare e di conti da fare con la storia, ecco perché si sviluppa ancora con 2.x. Esempio, tornando ai costi economici, considera una azienda che investe milioni di dollari per ottimizzare la versione 2.5 di python per erogare un servizio specifico per i suoi clienti. Python avanza, 2.6, 2.7, ma la 2.5 è ancora buona per loro, perché continuano a migliorarla, patcharla, renderla più stabile e sicura. A volte è un problema passare da una 2.x a una 2.(x+1) - che è retrocompatibile- specialmente per aziende enormi con una larga base di utenti e di codice da servire. Immagina cosa vuol dire passare da una versione ad una non retrocompatibile. Quindi, ecco, se ci sono dei giocatori grossi come Google p Dropbox, che nonostante la 3.x sia uscita da anni continuano ancora a sviluppare per la 2, fanno prodotti per la 2, supportano la 2, etc, è chiaro che questi giocatori hanno un'influenza grossa sul mercato, e quindi il mercato fa fatica a cambiare. Ma questo discorso si applica anche ai giocatori piccoli, alle aziendine di 10 programmatori dove la maggior parte di loro non ha tempo né voglia di imparare un linguaggio sensibilmente diverso, dove la vecchia code-base non è compatibile con la versione nuova, etc etc. Insomma, costa troppo. Quindi ci vuole molto tempo perché bisogna cambiare un pezzettino piccolo alla volta. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Presentazione
2015-06-05 13:06 GMT+01:00 Marco Beri marcob...@gmail.com: On Jun 5, 2015 8:01 AM, Gollum1 gollum1.smeag...@gmail.com wrote: Il 05 giugno 2015 01:49:22 CEST, Alessandro Re a...@ale-re.net ha scritto: Ah e mi raccomando, quando rispondi alle mail usa sempre il top quoting! XD Argh... questa è istigazione a delinquere... Già ultimamente mi sto trattenendo parecchio per non rompere troppo, se vai anche a sfrugugliare... finisce che affilo i denti... ;-) :-P Ma non è giusto top-quoting? Avesse detto top-posting capirei... Eh sì, Marco, (anche se c'é un po' di confusione sui termini, in realtà hai ragione) in realtà volevo essere sarcastico e far arrabbiare gollum, ma ho fatto un un epic fail :D Comunque son riuscito nel mio intento di smuovere le acque e far saltare fuori la verità: che python è figo (e si sapeva) e che il top-posting è male :D Anche se su questo: py è tipizzato meglio di java potrei aver da ridire, ma non dirò nulla :D Quindi benvenuto ancora a Matteo e have fun (che, come si evince, la lista non manca di un ottimo senso dell'umorismo :) Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Presentazione
2015-06-05 15:29 GMT+01:00 Simone Federici s.feder...@gmail.com: Alessandro Re: py è tipizzato meglio di java potrei aver da ridire, ma non dirò nulla :D e perché? paura di essere linciato? Sì, da Enrico e Manlio come minimo, ma anche da tanti altri ahaha :D Ma non è tanto per quello, quando per il fatto che tipizzato meglio è piuttosto soggettivo... Meglio per cosa? Secondo quali criteri? Inutile mettersi a discutere. Alcune cose semplicemente son diverse e non si possono sempre comparare, o almeno i criteri diventano un po' troppo... Fumosi. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Presentazione
On Jun 4, 2015 9:22 PM, Matteo Scarpa matteoscarp...@gmail.com wrote: Buona sera o buon giorno! Mi sono appena iscritto a questa mail list per cui mi sembra giusto presentarmi. Sono uno studente di informatica di Venezia di 23 anni appassionato di python. Ho iniziato a usarlo per un corso e mi ha preso talmente tanto che che scrivo solo in Python. Spero di essere utile e dare una mano in questa community Benvenuto Matteo, innanzitutto ottima scelta per il linguaggio, vedrai che anche se non è veloce come ruby, pulito e semplice come c++ e tipizzato bene come java, Python non è poi tanto male e potrebbe anche darti qualche soddisfazione di tanto in tanto :o) Ah e mi raccomando, quando rispondi alle mail usa sempre il top quoting! XD Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Visto che la lista langue
On May 21, 2015 6:31 AM, Carlos Catucci carlos.catu...@gmail.com wrote: che ne dite di rispondere ad un annincio come Analista Programmatore Phyton Deve essere un nuovo liguaggio. Potremmo metetre su al proposito yba bela PhyCon ;) Carlos (che ride per non piangere) Non è per essere cattivo, però non dovresti scherzare su un typo e poi scrivere annincio nella stessa mail :D Comunque ho notato anche io una certa piattezza di segnale nella lista ultimamente... Sarà la bella stagione che spinge tutti fuori al sole? :D Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Analisi numerica di immagini
2015-05-14 9:14 GMT+01:00 Giuseppe Amato giuam...@gmail.com: Buongiorno a tuti, ho bisogno di un consiglio su come è meglio approcciare un progetto. Data un'immagine ho bisogno di suddividere i pixel in un certo numero di cluster (definito dall'utente) in funzione del colore. Ciao Giuseppe, usa Pillow per caricare le immagini (un fork di PIL che supporta Python3) e da scikit-learn usa k-means [2] come algoritmo di clustering, dato che k è fissato, mi sembra l'algoritmo migliore. Carica i dati in un bel matricione numpy e dallo in pasto a KMeans. La distanza usata credo sia quella euclidea, quindi dovrai trasformare i colori mentre li metti nell'array numpy, a seconda dello spazio colore che usi o eventuali trasformazioni. Il concetto di distanza tra colori, ovviamente, dipende da molti fattori che dovrai scremare tu. HIH [1]: https://pillow.readthedocs.org/ [2]: http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [OT] Reti neurali e IA
2015-05-10 19:05 GMT+01:00 Michele Orru` li...@tumbolandia.net: Balan Victor balan.vict...@gmail.com writes: Qualcuno ha esperienza?Ha mai applicato questi concetti nella vita reale? In merito al già provato PyBrain, suggerirei invece di provare a usare scikit-learn. Ho contribuito al progetto PyBrain per un po' di tempo nella mia adolescenza, e credo che scikit-learn sia lontanamente più maturo, adottato, e ricco. Uhm, non sono un esperto con nessuna delle due librerie, ma l'ultima volta che avevo visto pybrain c'era un supporto un po' più esteso alle reti neurali rispetto a scikit-learn, che invece non mi sembra così ricco per questo argomento specifico, ma magari mi sbaglio. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [OT] Reti neurali e IA
2015-05-11 10:40 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com: Da un po di tempo mi sto interessando di reti neurali e ia. In giro si trova parecchio materiale ma la maggio parte di questo materiale presuppone determinate conoscenze matematiche che non ho e soprattutto è materiale molto teorico e poco pratico. Ti consiglio caldamente, prima di usare qualsiasi software, di farti le basi teoriche e matematiche, senza le quali, secondo me, rischi di non capire cosa succede: https://www.coursera.org/course/ml Il corso di ML di coursera è molto buono e Andrew Ng è un gallo a spiegare, ma c'é anche un corso apposito sulle reti neurali fatte dal peso massimo Geoffrey Hinton, uno dei massimi esperti al mondo sull'argomento: https://www.coursera.org/course/neuralnets È un corso di qualche anno fa, ma è decisamente raccomandato. Youtube, comunque, è ricco di video di Hinton più recenti, se si vuole. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [OT] Reti neurali e IA
2015-05-09 22:28 GMT+01:00 Balan Victor balan.vict...@gmail.com: Da un po di tempo mi sto interessando di reti neurali e ia. In giro si trova parecchio materiale ma la maggio parte di questo materiale presuppone determinate conoscenze matematiche che non ho e soprattutto è materiale molto teorico e poco pratico. Già visto PyBrain? Qualcuno ha esperienza? Ha mai applicato questi concetti nella vita reale? Sì, ma dipende: per fare cosa? ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] subclassare ndarray
2015-05-06 11:09 GMT+01:00 Margherita Di Leo direg...@gmail.com: per un programma che sto scrivendo vorrei creare un oggetto array di numpy con un numero di colonne preassegnato, per avere la comodita` di chiamare le varie colonne con array.nome invece di usare indici anonimi. Tra l'altro, questo array sara` poi incorporato in un oggetto punto. Per il momento, l'oggetto punto gia funziona se gli passo un array normale, quindi ora voglio procedere a passargli questo array speciale. Ciao, so che non sto rispondendo alla tua domanda, ma hai valutato delle alternative tipo: 1. creare un oggetto che incapsula un ndarray, magari definendo __getattr__ o __getattribute__ per ottenere il comportamento che vuoi, 2. usare pandas che ha già questa cosa simpatica di riferirsi alle serie all'interno di un dataframe mediante nome. Non voglio suggerire che queste opzioni siano meglio di quel che cerchi, ma magari ti vanno bene; magari non serve che definisci nuove classi e pandas fa al caso tuo. HIH ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [OT] Monty Python e il senso della vita (Era: Faccio auting: PyPaper)
On May 5, 2015 6:59 AM, Marco Giusti marco.giu...@posteo.de wrote: On Tue, May 05 2015, Alessandro Re wrote: Ciao lista, (lo so che si scrive outing, ma è tardi e ho fatto quel typo, quindi ho deciso di lasciarlo perchè era simpatico.) http://ricerca.repubblica.it/repubblica/archivio/repubblica/2005/06/17/monty-python-il-senso-della-vita.html Ahahah stupendo, grazie :D Son contento di aver lasciato quell'errore! (oh no, punti esclamativi!) ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Faccio auting: PyPaper
Ciao lista, (lo so che si scrive outing, ma è tardi e ho fatto quel typo, quindi ho deciso di lasciarlo perchè era simpatico.) Vi scrivo per annunciarvi un mio progettino personale che vorrei condividere col mondo. Non è la prima volta che metto codice pubblico, ma è la prima volta (credo) che ne metto pubblico uno che ho intenzione di usare, far crescere e che mi fa piacere condividere. Il progetto si chiama PyPaper, lo trovate qui: https://github.com/akiross/pypaper prima di andare e perdere ore a leggere il README lunghissimo che ho appena finito di scrivere, è giusto che sappiate cos'é: è un pessimo pezzo di codice. Ma, oltre a questo, l'idea è di avere una specie di lavagna interattiva: uno strumento dove potete aggiungere item, cambiare loro proprietà, spostare, animare, tutto usando python (3) in modo interattivo. Non è una canvas (o almeno, non direttamente. Non intenzionalmente). Un po' come avere un browser con una shell, ma in python senza hyperlink, senza rete e con un layout engine molto scarso :) Le dipendenze dovrebbero essere solamente - Python 3 - PyQt5 (o compatibili) - Jedi (per la console con autocompletamento) Probabilmente va solo sul mio computer, e non sono affatto un esperto di portabilità, quindi tempestatemi pure di commenti, critiche, patch e qualunque cosa vogliate. Bene, credo si possa dare il via al battesimo del fuoco. Ogni commento è benvenuto! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Insolita richiesta (di aiuto)
2015-05-01 17:18 GMT+01:00 domenico domenico.tarric...@alice.it: Ma veniamo alla mia richiesta: per cortesia, potete darmi delle idee su possibili programmi da fare? Facci un videogioco :) Per me i giochi son stati di enorme aiuto nell'imparare a programmare *e* per fissarmi chiari obiettivi di apprendimento. Puoi farne molti sia in modalità testuale che grafici: tris (tic-tac-toe), sudoku, campo minato, giochi di carte... E se usi la grafica, come mi pare di capire, puoi farne alcuni animati tipo tetris. Io mi son divertito molto a farli e a giocarci, spero possa divertire anche te Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Awesomeness
On Fri, Apr 24, 2015 at 2:30 PM, Enrico Bianchi enrico.bian...@ymail.com wrote: https://github.com/bayandin/awesome-awesomeness Awesome! Thanks for sharing :) ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Pycon6: grazie a tutti!
Aggiungo anche io dei ringraziamenti, perché quest'anno ho vissuto la Pycon in modo diverso, per la prima volta dopo essere entrato nella mailing list, e ho avuto modo di conoscere alcuni di voi; mi ha fatto molto piacere e spero di rivedervi l'anno prossimo - e di conoscere qualcuno in più :) E sì, l'evento è stato proprio bello in generale, quindi grazie per averci fatto parte ed averlo reso tale. (Scusa, Carlos :P) ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] You still haven't accepted ggig...@gmail.com's friend request. Accept?
On Tue, Apr 14, 2015 at 2:38 AM, ggig...@gmail.com i...@flipmailer.com wrote: Click here to discover ggig...@gmail.com's favorite websites! http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=clickhere ggig...@gmail.com wants to follow you Is ggig...@gmail.com http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=email your friend? Yes http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=yes No http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=no Following ggig...@gmail.com #14cb5946849b0427_ helps you discover great websites they recommend :) Click here to unsubscribe from such emails from ggig...@gmail.com or all friends http://invites.flipmailer.com/uns_inviter.jsp?email=python@lists.python.itiid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.com P.O. Box 70215, Plaza Station , Sunnyvale, CA 94086 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python Questa mail mi ha fatto venire in mente questo: www.reddit.com/r/thebutton/ :) ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Chiarimento su random.randrange. e sulla documentazione.
2015-04-13 13:30 GMT+01:00 Gabriele Battaglia iz4...@libero.it: Ok, e come si ottiene allora, lo stesso effetto in Python 3? Dai un occhio a random.uniform, non è la stessa cosa, ma può andare per generare valori reali in un certo intervallo. ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Richiesta aiuto per soluzione
2015-04-02 10:36 GMT+02:00 Carpediem i.carped...@tiscali.it: Sono alle primissime armi con python e non conosco la funzione divmod A giudicare dall'entusiasmo che altri hanno manifestato al tuo suggerimento, ritengo opportuno cercare notizie in proposito. grazie divmod non fa altro che fare // e % assieme: 8 // 5 # == 1 8 % 5 # == 3 quoz, resto = divmod(8, 5) # == (1, 3) visto che divisione intera e resto sono due operatori accoppiati, mi sembra logico avere una funzione che restituisca entrambi con un solo calcolo, da qui il mio entusiasmo :) Comunque, quando dici: Sono a conoscenza dell'operatore modulo ma i vari passaggi di divisione e moltiplicazione in realtà non hanno lo specifico compito di ottenere un numero intero ma di trasformare ad esempio, un alto numero di minuti in un numero che rientri nel normale limite per giungere alla grandezza superiore immediatamente successiva. quello che capisco è faccio l'operazione inversa per calcolare il modulo :D Poi magari non ho capito bene cosa intendi, ma dal tuo codice mi pare di capire che hai bisogno del modulo. Cioé, se hai 100 minuti, tu vuoi ottenere la conversione in Q ore e R minuti, cioé 1 ora e 40 minuti (1 ora * 60 minuti + 40 minuti = 100 minuti), che è esattamente l'operatore modulo. In ogni caso, ecco come farei: def converti_secondi_in_roba_varia(T): minuti, secondi = divmod(T, 60) ore, minuti = divmod(minuti, 60) giorni, ore = divmod(ore, 24) anni, giorni = divmod(giorni, 365) secoli, anni = divmod(anni, 100) return secoli, anni, giorni, ore, minuti, secondi converti_secondi_in_roba_varia(12345678) # (0, 0, 142, 21, 21, 18) Mancano le settimane, in realtà, mentre i mesi non sono determinabili correttamente perché cambiano di lunghezza. Però ho verificato con wolframalpha e sembra funzionale: http://www.wolframalpha.com/input/?i=12345678+seconds Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Richiesta aiuto per soluzione
On Thu, Apr 2, 2015 at 3:51 PM, Carlo Miron mi...@python.it wrote: Il 2 aprile 2015 10:52, Alessandro Re a...@ale-re.net ha scritto: Mancano le settimane, in realtà, mentre i mesi non sono determinabili correttamente perché cambiano di lunghezza. Anche gli anni non sono sempre di 365 giorni, in realtà... ;) Gli anni bisestili sono un'invenzione umana; se non se ne parla non esistono :D ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Richiesta aiuto per soluzione
2015-04-01 15:43 GMT+02:00 Carpediem i.carped...@tiscali.it: C'è qualcuno che gentilmente si presta a dare uno sguardo a quanto segue? ho anche commentato ogni riga di codice per facilitarne la lettura. Personalmente voto per aggiungere qualche spazio in più, ad esempio attorno agli operatori con bassa priorità, tipo questo='édifficile'=='daleggere' questo = 'èunpo'=='meglio' questo = 'éideale' == 'amioavviso' Tornando al tuo problema: secondi=(secondi-(minuti*60)) Oltre a quanto ha detto Beri ho da aggiungere solo una domanda: sei a conoscenza dell'operatore % (modulo)? Perché tu fai molti passaggi di divisione e moltiplicazione (come quello che ho fatto vedere sopra) col solo scopo di ottenere il resto della divisione, mentre ti basta semplicemente usare l'operatore di resto :) Inoltre, in Python c'é anche il fantastico // che è l'operatore di divisione intera - che trovo particolarmente utile in Python3, quindi eviti di fare `int(a / b)` e fai solo `a // b` Quindi, usa quei due operatori: dovresti riuscire ad ottenere lo stesso risultato con conti più semplici, meno codice e quindi probabilmente meno bug. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Richiesta aiuto per soluzione
2015-04-01 18:28 GMT+02:00 Carlo Miron mi...@python.it: Il 1 aprile 2015 18:22, Alessandro Re a...@ale-re.net ha scritto: sei a conoscenza dell'operatore % (modulo)? e della funzione divmod [1]? [1]: https://docs.python.org/3.3/library/functions.html#divmod U, io non ne ero al corrente! :D Fantastico, grazie! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Consigli per biologo
2015-03-19 7:54 GMT+00:00 Stefano Gasbarro pyt...@gasbarro.eu: Buongiorno a tutti ragazzi...mi presento sono Stefano da Roma Ciao Stefano da Roma :D Bravo per essere uscito dal guscio e benvenuto! strumenti necessari alla realizzazione di software per l'elaborazione dei dati scientifici...cosa usare per creare GUI...quali sono le potenzialità di Python per la biologia. ..insomma un quadro generale che vada oltre la mera programmazione. Vi ringrazio e conplimenti per la mailing list! Elaborazione di dati scientifici è molto, anzi estremamente, vago. Potrei benissimo dire che python da solo è sufficiente :) Ma forse vuoi anche investire del tuo tempo per - numpy e scipy - matplotlib (per fare i grafici) - pandas - scikit-learn (se devi studare pattern, fare clustering, etc) Per creare GUI, Python ha una sua libreria, tkinter, ma ti io consiglio di usare PyQt. Se vuoi andare sul lato web come ha suggerito Carlos benvenga, ma dipende molto cosa devi fare... Devi rappresentare grafici? Devi mostrare l'evoluzione di qualcosa nel tempo? Devi mostrare una griglia e studiare il vicinato? Devi guardare molecole che si muovono nello spazio 3D? Insomma, le opzioni sono molte :) Potenzialità di python per la biologia, come ha detto Carlos, bisogna un attimo capire cosa vuoi farci... Io mi sono occupato di simulazioni biochimiche nella tesi e python va benissimo per fare prototipi e interfacce (anche da riga di comando, e ti consiglio di studiarti il modulo argparse)... Però a volte python non è abbastanza efficiente e, in biologia/biochimica/systems biology, se ci fai simulazioni, forse vuoi andarci pesante coi numeri e talvolta python da solo semplicemente non ce la fa. Comunque, al di la di queste informazioni sulle performance, Python ha un gran bel potenziale. Probabilmente molte delle cose che vorrai fare usciranno benissimo con python e ti saranno comunque utili, facili da scrivere e sufficientemente veloci da eseguire (usa numpy). A presto ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Come fare il match di tutti i caratteri racchiusi tra /* e */?
2015-03-15 1:13 GMT+00:00 germano carella germano.care...@gmail.com: In realtà tutto questo mi serve per fare il parser di una grammatica acontestuale dove le produzioni hanno una loro sintassi particolare, non so se qualcuno di voi le conosce. Perché non ricorrere direttamente ad una libreria per farlo? Con pyparsing mi son trovato spesso piuttosto bene. Ciao ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire eventi con callback
2015-03-10 17:33 GMT+00:00 Marco Giusti marco.giu...@posteo.de: Credo che puoi fare meglio che questo. Vuoi che ogni callback venga invocata una sola volta? Ah sì, che si possa far meglio è fuori di dubbio :D Comunque no, non voglio che *ogni* callback venga invocata una sola volta. Ma comunque ammetto che avrei potuto trovare una soluzione molto più pulita. Inoltre passare un oggetto come primo argomento mi suona tanto da antipattern. Non è sbagliato, ma chiediti che oggetto sia. Mi suona da antipattern per come i metodi e le funzioni in python funzionano. come vedi le due chiamate sono identiche ma in più il metodo riceve un oggetto (su cui opera il metodo). Il tuo codice sembra reinventare una ruota che ormai è ben collaudata. Ok, premetto che mi è chiaro l'esempio che fai, e ci ho pensato un po' su queste tue parole, ma non credo di aver capito cosa intendi; ti spiace argomentare un pochino? Comunque l'ultima parola l'hai tu perché il codice che hai postato non ci aiuta molto a capire esattamente il funzionamento di questi fantomatici oggetti C++. No, ecco, la questione C++ l'avete ingrandita un po' voi :P Nel senso che sì, io ho degli oggetti C++ sottostanti, ma il punto che volevo fare è solo che voglio che non esistano oggetti python che facciano riferimento ad oggetti C++ ormai distrutti... C++ l'ho nominato solo per giustificare il fatto che gli oggetti python, dopo la remove(), dovrebbero essere cancellati ovunque. Tutto qua :) L'unica cosa che ho omesso è che, in remove(), oltre a chiamare le callback, io ho anche una chiamata tipo `self._oggetto_cpp.distruggi()` e se dopo di essa provo a fare `self._oggetto_cpp.metodo()` ottengo un bel errore :) PS. Le tue linee di codice sono identiche: for obj, cb in list(it for it in self._callbacks.get(event, [])): for obj, cb in self._callbacks.get(event, [])[:]: Grazie; sì, ho presente [:], ma non mi piace molto, preferisco usare list(), che personalmente trovo più esplicito e facile da leggere. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Come fare il match di tutti i caratteri racchiusi tra /* e */?
Ciao Germano, forse non ho capito bene la domanda, ma non puoi semplicemente specificare '\n' nel pattern da cercare? Ad esempio: import re # Ref. [1] com = '''/* inizio del commento continua su seconda riga terza riga e finisce */''' re.findall('[aeiou]\n', com) findall restituisce queste occorrenze: ['o\n', 'a\n'] E quindi il carattere \n fa match senza problemi... Forse hai esigenze un po' più particolari? [1]: no, il mio cognome non fa di me un esperto di regex :) Ciauz ~Ale 2015-03-12 17:56 GMT+00:00 germano carella germano.care...@gmail.com: Salve a tutti, ho bisogno di fare il match di una porzine di commento che includa anche il carattere \n. /*inizio del commento il commento continua qui. Anche qui. */ So che nelle espressioni regolari il metacarattere '.' serve proprio a questo, ma se voglio includere anche '\n' devo usare il flag re.DOTALL. Vorrei evitare di usarlo, anche se si complicano le cose. Secondo voi si può fare? Io ho cercato in rete, ma non riesco a trovare niente. Qualcuno mi dà lumi? Grazie! ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire eventi con callback
Alla fine *credo* di aver trovato una soluzione *quasi* soddisfacente. Alcune scelte fanno cagare, ma per ora può andare. Condivido, per un ovvio atto di giustizia cosmica. 2015-03-08 15:12 GMT+00:00 Marco Giusti marco.giu...@posteo.de: Il patter che più gli assomigli è l'Observer ma non sono sicuro che la terminologia sia quella giusta in questo caso. Comunque l'implementazione è all'incirca quella: ... self._events = {} def register(self, event, callback): self._events.setdefault(event, []).append(callback) def unregister(self, event, callback): callbacks = self._events[event] callbacks.pop(callbacks.index(callback)) def on_event(self, event, *args): for callback in self._events[event]: callback(*args) Questa implementazione va sicuramente bene per un meccanismo basilare, e le ho usate. Bene, Grazie Marco :) Però poi mi sono accorto che volevo qualcosa di più elaborato ed automatico. Fondamentalmente, quello che ho fatto è mettere in register() un sistema che, quando passo un oggetto, io registro in quell'oggetto una callback che - all'atto di distruzione - rimuove la callback originale. E questa callback che rimuove, viene schedulata per essere eseguita una volta sola, e poi rimossa automaticamente. Inoltre, per permettere di usare funzioni che incapsulassero i vari metodi, ho fatto in modo che register() prenda anche come parametro un oggetto da passare come primo argomento alla callback. In sostanza, il codice è questo: class Base: def register(self, event, target_obj, callback): if target_obj is None: def _call_once(*args, **kwargs): callback(*args, **kwargs) self.unregister(event, None, _call_once) self._callbacks.setdefault(event, []).append((None, _call_once)) else: self._callbacks.setdefault(event, []).append((target_obj, callback)) def _remove_cb(unused, obj): self.unregister(event, target_obj, callback) target_obj.register('on_remove', None, _remove_cb) def unregister(self, event, target_obj, callback): self._callbacks[event].remove((target_obj, callback)) def _run_callbacks(self, event, *args, **kwargs): for obj, cb in list(it for it in self._callbacks.get(event, [])): cb(obj, *args, **kwargs) def remove(self): self._run_callbacks('on_remove', self) Scelte di design: - passare l'oggetto (target_obj) esplicitamente in register() - schedulare una callback come fire once se target_obj è None. Avrei potuto usare un protocollo diverso, ma questo mi è sembrato un buon compromesso per ragioni che non sto a spiegare - lasciare che quando la callback è fire once, le venga passato None come primo parametro. Solo per consistenza col resto - ogni callback registrata avrà una callback automatica di de-registrazione quando l'oggetto viene distrutto. Probabilmente è uno spreco di memoria e ci sono soluzioni migliori (tipo un metodo solo che rimuove tutte le callback associate all'oggetto, la lo lascio come esercizio al lettore :D). Punti interessanti: - in _run_callback costruisco una nuova lista perché può essere che cb chiami unregister() durante l'esecuzione. Probabilmente non è la soluzione migliore, comunque. - remove fa altre cose, ma è anche un esempio di come usare _run_callbacks. Non ho fatto dei gran test, ma per ora funzionicchia. Commenti ben accetti - ma considerate che è piuttosto legato al mio stile e alle necessità di questa applicazione, non l'ho pensato perché fosse generico. Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire eventi con callback
2015-03-08 20:24 GMT+00:00 Manlio Perillo manlio.peri...@gmail.com: Intendevo dire cosa usi per chiamare il codice C++. Ah, forse ho capito: intendi dire se uso qualche modulo python per usare C++, tipo ctypes? Non uso niente di simile: sto usando una libreria che ha dei binding in python, quindi includo il modulo, eredito una classe e costruisco su quella. ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire eventi con callback
Ciao Manlio, Cosa usi per interfacciarti con codice C++? Che errore ottieni? Come dicevo a flandero, non ho controllo sulla parte C++, non so cosa venga usato per l'interfaccia e in questo caso lavoro 100% python. Ottengo un errore tipo L'oggetto C++ è già stato distrutto, quando cerco di fare riferimento ad esso dopo aver chiamato la remove(). Ho però realizzato che il mio problema di fondo è nella gestione delle callback costruite al volo: purtroppo con python mi è troppo facile lavorare in modo semi-funzionale, e quando devo collegare tra loro due eventi, non è quasi mai un lavoro pulito. Ad esempio: pr = Producer() co = Consumer() pr.register('on_data_ready', co.print_data) In questo caso, tutto è molto lineare: un oggetto stampa i dati che l'altro fornisce. Se co venisse distrutto, chiaramente un eventi data_ready sarebbe problematico, a meno che non si è fatto unregister() prima della distruzione. Ora, finché la registrazione e de-registrazione coinvolgono due oggetti, non ci metto molto a trovare una strategia per tenere le cose pulite. Il problema sorge se invece faccio così: def clean_and_print(data): data.replace( , nbsp;) co.print_data(data) pr.register('on_data_ready', clean_and_print) In questo caso, mi esce più difficile immaginare un meccanismo che, quando co viene rimosso, allora la funzione clean_and_print - che usa co - venga de-registrata. Il motivo è che mentre riesco a concepire facilmente un sistema per cui degli oggetti implementano un'interfaccia standard che gestisca le callback e la loro rimozione sicura all'atto di distruzione, non mi esce così facile fare lo stesso per delle funzioni normali. Magari si potrebbe usare un decoratore, ma così su due piedi non mi si accende alcuna lampadina. Avete delle idee o dei commenti a riguardo? Magari sto semplicemente sbagliando approccio. Non so se è un uso corretto, ma puoi provare ad usare una weakref, oppure qualcosa di simile personalizzato. Ok, darò un occhio anche a questo, non ci avevo pensato. Quindi immaginate ... [...] Troppo complesso, passo. lol Come posso rendere sincrona (bloccante) l'invocazione di un comando? https://gist.github.com/perillo/21234cf7b06873227cb2 Molto interessante, grazie!! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire eventi con callback
Ciao Marco, intanto grazie per la risposta :) 2015-03-08 7:54 GMT+00:00 Marco Giusti marco.giu...@posteo.de: Come registri le callback? Gli oggetti in python sono referenziati da del codice python o solo dalle callback di c++? In questo caso basta che, nel momento in cui distruggi l'oggetto C, deregistri le callback e riduci il numero di referenze del metodo. Se i metodi di un oggetto P sono usati come callback di un solo oggetto C, al momento che tu rilasci tutte le callback non esistono più riferimenti all'oggetto python. Il problema è proprio la registrazione delle callback... Per ora ho un meccanismo piuttosto primitivo: quando un evento accade, viene chiamato un metodo on_evento(*args) di python. L'idea è che l'oggetto tiene una lista di callback da chiamare per quell'evento, e quel metodo è definito più o meno come def on_evento(self, *args): for callback in self._callbacks: callback(*args) Però è per l'appunto primitivo, e non viene assolutamente gestita la rimozione delle callback. Prima di avventurarmi ed inventare qualcosa che cerchi di automatizzare la rimozione, volevo capire se c'era già qualche pattern usato in questi casi. Come posso rendere sincrona (bloccante) l'invocazione di un comando? La prima idea che mi viene in mente è di infilare la callback dentro la send e di chiamare sleep per salvare qualche ciclo macchina: def send_data_blocking(data): def go(): free_to_go = True free_to_go = False send_data(data, callback=go) while not free_to_go: sleep(0.1) Grazie, proverò con la sleep :) (btw, in go() non ci andrebbe un nonlocal free_to_go?) Ciauz ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire eventi con callback
2015-03-08 14:25 GMT+00:00 flandero fland...@gmail.com: Perché non fai una abstract factory per istanziare la parte in c++, distruggendo quindi l'istanza e tutto il resto, quando necessario? Premetto che non ho controllo sulla parte C++: io agisco solo sul lato python, in cui posso distruggere gli oggetti C++ e in cui ricevo una chiamata ai metodi on_evento. Però non ho ben capito come intendi usare l'abstract factory... Come risolve il problema di eliminare automaticamente le callback registrate? Grazie comunque per l'input, ci penserò un po' su. ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestire eventi con callback
2015-03-08 15:12 GMT+00:00 Marco Giusti marco.giu...@posteo.de: Così come registri una callback, così la rimuovi. Se non riesci a definire formalmente un ciclo di vita per i tuoi oggetti, allora è probabile che nel tuo design qualcosa sia sbagliato. Fossi in te inizierei con una implementazione di questo tipo. Se è vero che è primitiva, le specifiche non sembrano ancora definite e trovo inutile andare a complicarsi troppo la vita. Scrivi un paio di test, vedi se il codice che viene fuori è soddisfacente o se richiede qualche hack non troppo elegante e parti da lì per migliorarlo. Bene, il codice che mi hai dato è chiaro e fa decisamente il suo lavoro, però forse questa volta stavo mirando a complicarmi la vita senza motivo (forse, dentro di me, stavo cercando di replicare un meccanismo signals-and-slots)... Ma questi due consigli che mi hai dato valgono molto: per quanto semplici, mi rimettono un po' i prospettiva :) Per un momento ho creduto che go fosse il linguaggio. Non conosco nonlocal ma hai ragione se dici che c'è un errore grossolano. Più o meno è questo che avevo in mente, ma non avendo neanche provato il codice... def send_data_blocking(data): def go(): free_to_go[0] = True free_to_go = [False] send_data(data, callback=go) while not free_to_go[0]: sleep(0.1) Sì, é che uso Python 3 e nonlocal sostanzialmente fa il lavoro di global in uno scope non-globale (tipo questo caso, con una chiusura). Evita di dover usare la lista come hai mostrato - ma stavo solo facendo il pignolo :) Ancora mille grazie ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Vimrc
Ciao Lorenzo, Io su via uso YouCompleteMe per completare Python e mi trovo abbastanza bene. Per il resto non so, o non ho nulla in particolare da condividere :) C'è un altro plugin che funziona bene, per lo stesso scopo, ma non ricordo il nome. Entrambi si basano su jedi per il completamento automatico. Entrambi imho funzionano bene. Ciauz ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Alcune cose sono interessanti, altre non so se hanno senso
On Feb 26, 2015 8:27 PM, Carlos Catucci carlos.catu...@gmail.com wrote: http://www.dotnetcurry.com/showarticle.aspx?ID=1090 Lo so e' ECMA Script, ma tanto prima o poi ci dovremo interagire con la v. 6 Secondo te cosa non ha senso? Personalmente ho sempre pensato che il bello di javascript era la semplicità del linguaggio... Dopo aver letto questo mi è caduto tutto, a parte le let, praticamente tutto il resto aggiunge complessità. E poi la sintassi di molte cose nuove è esteticamente orribile :p ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] itertools.product e segmentaton fault
2015-02-25 15:03 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com: Salve gente stavolta non so dove sbattere la testa. Devo avere le combinazioni possibili di una seire di liste. Esempio L1 = [a,b,c,] L2 = [d,e] L3 = [f,g] Mi servono [a.d.f],[a.d.g],[a.e.f],[a.e.g], [b.d.f],[b.d.g],[b.e.f],[b.e.g.], [c.d.f],[c.d.g],[c.e.f],[c.e.g] solo che la lista che mi crea problemi e' [[3760], [3759, 3762, 3763, 3770], [3769, 3778], [7607, 3781, 3780, 3779, 3777, 3773, 3774, 14617], [7476, 3788, 7475, 3786, 7472, 16514, 3784, 7470, 3783, 3789, 7477, 7608], [3806, 3805, 3804, 3803, 3802, 7532, 7530, 7534, 3813], [17164, 7486, 7490, 7491, 7492, 3814, 7495, 3818], [3819, 4216], [4217, 4220], [4219, 4268], [4267, 6475, 4273], [4271, 4272, 18235], [18236, 18244], [18245, 18246, 20232], [20234, 20237], [20236, 34978], [8389]] Ho idea che un totale di 13 liste di cui la piu' lunga conta 12 elementi e un'altro paio 8 o 9 elemnti, sia piu' di quanto il povero itertools.product (che suppongo a questo punto usi la ricorsivita') possa reggere, infatti mi tira fuori un bellissimo segmentation fault. Mi choiedo, c'e' quna strada alternativa per fare la stessa cosa che fa product con una diversa libreria? Carlos Il prodotto cartesiano di N liste di dimensioni N1, N2, N3.. è un elemento di dimension N1*N2*N3*... Ha complessità esponenziale, quindi occhio ai numeri :) Nel tuo caso: import functools liste = [[3760], [3759, 3762, 3763, 3770], [3769, 3778], [7607, 3781, 3780, 3779, 3777, 3773, 3774, 14617], [7476, 3788, 7475, 3786, 7472, 16514, 3784, 7470, 3783, 3789, 7477, 7608], [3806, 3805, 3804, 3803, 3802, 7532, 7530, 7534, 3813], [17164, 7486, 7490, 7491, 7492, 3814, 7495, 3818], [3819, 4216], [4217, 4220], [4219, 4268], [4267, 6475, 4273], [4271, 4272, 18235], [18236, 18244], [18245, 18246, 20232], [20234, 20237], [20236, 34978], [8389]] functools.reduce(lambda a,b: a*len(b), liste, 1) Esce 95'551'488 Se ci aggiungi un'altra lista da 10 elementi, diventano 950 milioni di disposizioni. Ora, io suppongo che il tuo problema non sia dovuto alla ricorsione, ma proprio alla scala del problema... 95 milioni di oggetti non sono necessariamente facili da gestire. Non so com'é implementata itertools.product, ma secondo me non usa la ricorsione. Ed è pure un generatore, quindi non si incanta neanche a fare tutti i conti prima del necessario (quindi, anche fosse ricorsiva, il problema è legato a quante next() usi). Sei sicuro di stare usando il metodo giusto per risolvere il problema? Non hai alternative a visitare tutte le combinazioni? ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Come iniziare
2015-02-13 0:03 GMT+00:00 Robotica li...@robotica.it: invece si. lo statement loop: puoi creartelo in python Uh, questo mi interessa abbastanza: come si fa? Perché a tal riguardo ho trovato questo [1], che non ho ancora letto, ma mi pare di capire che non sia in python... O comunque sembra necessario ricompilare qualcosa. Perché un conto è se il linguaggio può modificare la sua sintassi, un conto è modificare l'interprete per fare parsing di un linguaggio simile. [1]: http://eli.thegreenplace.net/2010/06/30/python-internals-adding-a-new-statement-to-python/ Grazie in anticipo :) ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Come iniziare
2015-02-12 11:12 GMT+00:00 Andrea Carocci andrea_d...@hotmail.it: Salve, Mi sono iscritto a questa mailing-list per aver alcune informazioni su python. Non sono ancora molto pratico di linguaggi di programmazione ma vorrei imparare. Da dove mi consigliate di iniziare? Sapete dove posso trovare una guida completa in italiano su python? Grazie e a presto Sono semi-serio, ma ti consiglio anche www.pycon.it :D Personalmente mi è servita moltissimo per consolidare le mie conoscenze su python e passare da curioso a praticante... Quindi, tienila in considerazione qual'ora ti volessi avvicinare di più al linguaggio. Ciauz ~Ale Inviata dal mio Windows Phone ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Delfino, no scusate, algoritmo curioso
2015-02-06 11:04 GMT+00:00 Marco Beri marcob...@gmail.com: Consiglio vivamente l'iscrizione a http://matematica.unibocconi.it/articoli/campionati-internazionali-di-giochi-matematici-2015 Sono 3 o 4 ore l'anno e, se vi piace un minimo la matematica, vi tiene la mente fresca aggiungendo un pizzico di competizione. Fantastico!! :D Non sapevo l'esistenza di questa cosa (o almeno non al di fuori delle scuole) ed è troppo bella perché io non vi partecipi! :D Grazie mille :) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Delfino, no scusate, algoritmo curioso
2015-02-06 17:15 GMT+00:00 Marco Beri marcob...@gmail.com: 2015-02-06 18:09 GMT+01:00 Alessandro Re a...@ale-re.net: 2015-02-06 11:04 GMT+00:00 Marco Beri marcob...@gmail.com: Consiglio vivamente l'iscrizione a http://matematica.unibocconi.it/articoli/campionati-internazionali-di-giochi-matematici-2015 Sono 3 o 4 ore l'anno e, se vi piace un minimo la matematica, vi tiene la mente fresca aggiungendo un pizzico di competizione. Fantastico!! :D Non sapevo l'esistenza di questa cosa (o almeno non al di fuori delle scuole) ed è troppo bella perché io non vi partecipi! :D Ok, time for bragging (e intanto ti puoi scaricare un testo di esempio): http://beri.it/2012/05/22/matematica/ Ah, guarda che hanno esteso i termini per l'iscrizione, se vuoi già iniziare quest'anno... :-) Io non li manco dal 2010. Ciao. Marco. Beh, a mio avviso il bragging è giustificato! :D Ahaha e congratulazioni per i successi! Però purtroppo speravo in qualcosa di più... telematico, perché vivendo a Lisbona non riuscirò certamente a partecipare alla selezione italiana. Detto questo, cercherò di trovare dove li fanno qui in Portogallo :) (o prendere un biglietto aereo per farli in Italia, ma non mi sembra una cosa troppo efficiente :P). Grazie ancora! ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Delfino, no scusate, algoritmo curioso
Ciao Carlos, magari ho capito male il problema, ma non stai cercando di fare il prodotto cartesiano? Non te la cavi con un itertools.product usando come iterabili i valori delle sezioni? Però, ecco, non mi è molto chiaro perché ci stai anche dando la struttura delle sezioni e delle sotto-sezioni: immagino che questo introduca dei vincoli nel problema, ma non riesco a capire in che modo. Ciauz ~Ale 2015-02-05 16:37 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com: Ho una situazione da dipanare tutt'altro che banale, nonostante le apparenze. Premetto che la struttura posso , se serve, modficiarla visto che la genero io. La struttura con cui mi trovo a lavorare e' tipo la seguente PARAGRAFO: { SUBPARAGRAFO: { SEZIONE 1: [ {1: 'A'}, {2: 'B'}, {3: 'C'}, ], SEZIONE 2: [ {1: 'D'}, {2: 'E'}, ], SEZIONE 3: [ {1: 'F'}, {2: 'G'}, {3: 'H'}, ] } } Ora io devo creare una struttura dove ho una cosa del tipo [('A', 'D', 'F'), ('A', 'D', 'G'), ('A', 'D', 'H'), ('A', 'E', 'F'), ('A', 'E', 'G'), ('A', 'E', 'H'), ('B', 'D', 'F'),...('C', 'E', 'H')] Quindi tutte le possibili permutazioni delle varie sezioni. Ovviamente (senno' era troppo comdo) le sezioni podsono essere da 2 a n (fortunatamente n e' massimo 5 o 6. Dmattina a mente fresca magari mi viene in mente la soluzione migliore ma al momento se ci provo a fare l'analisi mi incapretto da solo con cose che sono piu' degne di un programma in Basic (quello dei primi PC IBM per capirci) che di essere definite codice Python. Per cui se qualcuno ha qualche dritta su come potrei approcciare il problema (mi erano apparse stile Fatima delle parole di fuoco tipo yeld, itertools.permutations itertools.pèrodcut, ma non avendoli mai usati molto non vorrei avere capito male Muchas gracias Carlos -- EZLN ... Para Todos Todo ... Nada para nosotros ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python ed Excel.
Io direi che dipende dal formato excel che ti serve ottenere. Se, come ti diceva Carlos, devi ottenere xls o xlsx [1] probabilmente avrai bisogno di qualche libreria esterna. Se invece ti serve un qualunque modo per ottenere un file leggibile da excel, allora puoi usare ad esempio un comma separated values (batterie incluse). Volendo speculare un po': esistono formati basati su XML che excel è in grado di leggere e le cui specifiche sono disponibili. Tecnicamente, con un po' di sforzo, puoi scrivere tu con puro python un codice che esporta in uno di questi formati, come ad esempio i formati Open Document (ods nel tuo caso). Gli Excel recenti lo sanno aprire. [1] XLSX in realtà è basato su XML e ZIP, e io credo che una specifica piuttosto generale esista pubblicamente da qualche parte. Poi, in realtà, a te basta riuscrire a riprodurre una specifica versione di xlsx, non ti interessa supportare anche quelle future, perché nel momento in cui riesci ad esportare in un formato accettabile, in genere sarà excel stesso ad essere retrocompatibile. Quindi io credo che con un po' di pazienza riusciresti ad ottenere un xlsx. Il problema è... Il gioco vale la candela? :) ~Ale 2015-02-02 9:58 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com: 2015-02-02 10:46 GMT+01:00 Gabriele Battaglia iz4...@libero.it: La domanda è: per fare quanto segue, bastano le batterie incluse o mi serve qualche 3rd part software e quale mi consigliereste? Ecco una breve descrizione del progetto. Uno script python privo di interfaccia grafica, basta la console; Batterie incluse chiede all'utente un anno ed un mese, propone quelli correnti; Batterie incluse chiede giorni di ferie, permessi (sia giornate intere che ad ore); Dipende da dove prende questi dati. Se li hai in una struttura (lista di dizionari?) tua creata da te Batterie incluse, se la devi prendere da un Db dipende dal db engine, con Sqlite Batterie incluse calcola i giorni festivi e li esclude; Batterie incluse crea un foglio excel compilando una tabella riassuntiva delle presenze al lavoro: orari di ingresso, uscita, inizio e fine pausa, totale ore lavorate, permessi e assenze. Ti serve una libreria che gestisca il formato excel in output. O meglio fino qui ti basterebbe una struttura dati da covertire dopo in foglio excel. La tabella va compilata prendendo i dati da un modello, sempre gli stessi, ma lo script farebbe le variazioni laddove indicato dall'utente. Cioè, tutti i giorni si entra alla stessa ora, si esce alla stessa ora, c'è la stessa pausa, tranne in quelle giornate che io indicherei, lì farebbe i conti. Qui direi che Python possa automatizzare la creazione Salvare il foglio excel risultante o addirittura inviarlo via mail. Direi che qui piu' che mai ti serve la libreria esterna. Excel non e' un formato standard o open e per di piu' dipende anche dalla versione di Excel a cui ti riferisci (xls o xlsx, il secondo e' XML se non erro) Carlos -- EZLN ... Para Todos Todo ... Nada para nosotros ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Julia (Was: Walks like Python. Runs like C).
Vincenzo, io credo che un gestionale abbia comunque una certa fetta di interattività nel processo d'uso, o sbaglio? Certo, magari ci sono fasi in cui devi macinare tanti numeri, ma credo che sia un genere di calcoli dove è preponderante l'aspetto di andare a trovare le informazioni, su cui poi fare i conti, piuttosto che andare a fare i conti stessi... Cioé, non passi la maggior parte del tempo ad aspettare un risultato. Quanto Valerio parlava di ambito numerico/scientifico, credo intendesse quegli ambiti dove essenzialmente si fanno solo conti in maniera molto consistente. Immagina programmi che devono passare un certo numero di ore (o talvolta giorni) a fare solo operazioni su vettori, matrici e cose così... Ambiti molto rappresentativi, ad esempio, sono simulazioni di fluidodinamica e previsioni metereologiche. Ora, sto un po' semplificando ed estremizzando, ma non so se tu sei familiare con l'ambito scientifico e questo è solo un esempio per darti un'idea del perché, anche secondo me, Julia non è il linguaggio che raccomanderei per un gestionale (benché se non sbaglio ha tutti gli elementi per poter fare anche quello) :) Ciauz ~Ale 2015-01-15 10:02 GMT+00:00 Vincenzo Campanella vin...@gmail.com: Il 15.01.2015 10:22, Valerio Maggio ha scritto: - è certamente un linguaggio ancora non molto maturo ma con una community in veloce espansione - è un linguaggio nato per la computazione scientifica e li morirà (imho). Non vuole essere un linguaggio general-purpose. Certo non mi meraviglierei se ci fosse qualcuno che inizi a fare anche il caffè con Julia, ma è un linguaggio che esprime le sue potenzialità in ambito numerico/scientifico. Questo significa che un programma gestionale essenzialmente in ambito contabile potrebbe essere veloce ed efficiente? Se sì, quanto più di - poniamo per esempio - Python, Java o C++? Scusate se mi permetto d'intromettermi, ma questo aspetto mi tocca in prima persona ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] C'è qualcuno che ha già usato theano?
Io no, ma ce l'ho in programma... Probabilmente la userò per qualche prototipo. Mi iscriverò a breve alla mailing list di theano, quindi :) Se vuoi rimaniamo in contatto (o ti avviso quando inizio a smanettarci) ~Ale 2015-01-13 9:50 GMT+00:00 Marco Ippolito ippolito.ma...@gmail.com: Ciao Carlos, sono iscritto alla mailing list theano,in cui ovviamente scrivo. Ma sarebbe bello confrontarsi in modo piu' diretto,schietto ed immediato con utilizzatori italiani Se qualcuno lo ha usatobatta un colpo Marco Il giorno 13/gen/2015 10:43, Carlos Catucci carlos.catu...@gmail.com ha scritto: 2015-01-13 10:19 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com: c'è qualcuno che ha già usato theano? Direi Garibaldi ;) No scusa la facile battuta ma non spaevo neppure sistesse sembra interessante, anche se io con grosse moli numeriche non mi ci confronto spesso. Carlos -- EZLN ... Para Todos Todo ... Nada para nosotros ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Walks like Python. Runs like C.
2015-01-12 19:08 GMT+00:00 Manlio Perillo manlio.peri...@gmail.com: 2015-01-12 20:01 GMT+01:00 Alessandro Re a...@ale-re.net: Io l'ho guardato un pochino... Devo dire che è interessante, per diversi motivi, ma ho un odio viscerale per la sua sintassi, quindi non lo preferirò al caro paiton. Anzi, mi son detto che è meglio aspettare che qualcuno ottimizzi python, Non succederà. Se vuoi Python veloce devi usare Cython o Numba, che sono linguaggi differenti, che servono solo a scrivere parti piccole di codice ottimizzate. Interessante numba, non lo conoscevo! E Pypy? E Pyston? E tutti gli altri? :) Comunque sia, la mia era ovviamente una battuta sarcastica, non si meritava nemmeno una risposta. La sintassi di Julia non è troppo male. Se vede che non hai mai studiato linguaggi come Lisp, Ocaml, Haskell o Rust... I gusti non si discutono :) D'altronde io trovo estremamente bello lisp (scheme), per quanto la sua non-sintassi sia sempre criticata a mio avviso ingiustamente. ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python con tipi
@Marco Beri, grazie per il link, appena riesco me lo rileggo attentamente :) On Jan 1, 2015 6:24 PM, Manlio Perillo manlio.peri...@gmail.com wrote: Sovraccaricare un linguaggio di nuove funzionalità non è sempre la scelta migliore. In realtà la cosa che trovo interessante è che non si sovraccarica, ma si usa una funzionalità esistente per uno scopo diverso. Ciao! ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python vs Java
Intendevo dire che a volte avere un compilatore che fa i controlli sui tipi e molto utile :) On Jan 1, 2015 3:06 PM, Enrico Bianchi enrico.bian...@ymail.com wrote: On 12/29/2014 12:12 PM, Alessandro Re wrote: Mi è anche capitato di usare python in un progetto e passare i mesi successivi a maledirmi perché mi serviva un controllo sui tipi, e python non mi aiutava poi molto... Wut? In Python il controllo dei tipi si fa senza troppi problemi: a = 1 if type(a) == int: print(True) else: print(False) Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Python con tipi
Ciao, volevo portare alla vostra attenzione questo progetto http://www.mypy-lang.org che mi sembra un'ottima idea, ma vorrei soprattutto sapere che ne pensate. Lo usereste? Ciauz e buon 2015 :) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python vs Java
2014-12-29 10:36 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com: Ciao a tutti, riguardo al confronto Java-Python, pur essendo vero che non è mai bello fare confronti tra linguaggi di programmazione perchè fanno cose diverse, io volevo chiedervi quali sono le cose che Java ti consente di fare e che Python invece non può fare. In linea teorica, nulla: entrambi i linguaggi sono equivalenti. E, in generale, tutti i linguaggi Turing completi sono uguali in termini di cosa è possibile fare. Fondamentalmente sono tutti i linguaggi di programmazione di cui si sente parlare, quindi non porti questo problema. Il problema principale, alla fine, si riduce ad essere questo: quanto è facile risolvere efficientemente un problema con un certo linguaggio? E qui si apre un mondo :) Le questioni sono tante: 1. quanto materiale ho a disposizione già scritto da altri (quanto codice posso evitare di riscrivere e di debuggare)? Java e Python sono entrambi estremamente ricchi da questo punto di vista. 2. quanto la sintassi del linguaggio è adatta al problema? Java e Python, seppure piuttosto diversi in termini di aspetto estetico, ricadono nella stessa famiglia di linguaggi multi-paradigma imperativi/oggetti/funzionali, quindi anche da questo punto di vista sono fondamentalmente equivalenti... Chi sostiene il contrario, di solito, è perché confonde questo punto con il punto successivo: 3. quanto un utente si trova bene con un linguaggio? Question molto personale. C'é chi (come nel link postato dall'OP) si trova a vedere il mondo in modo java e chi lo fa in modo python. Questo ha un grande impatto sulla velocità con cui scrivi codice, anche se gli strumenti che si hanno a disposizione sono spesso simili tra linguaggi. 4. quanto è efficiente l'implementazione del linguaggio? Alcuni linguaggi, Fortran o C, ad esempio, sono molto efficienti, perché lasciano poco da fare al compilatore, e tanti paletti li deve tenere in testa il programmatore (che ha vita difficile). Java, a MIO personalissimo avviso, è più efficiente in esecuzione di CPython 3 (che uso), e il confronto dipende molto da cosa si fa... Se usi bene Numpy, se usi PyPy, etc, tutto può variare molto. 5. dove dovrà essere eseguito il programma? Se devi farlo andare sul tuo computer, e solo quello, allora di solito scegli la tecnologia che vuoi, ma altrimenti scegli la migliore tra quelle che la piattaforma obiettivo ti consente di usare... A volte, python o java non sono scelte, e spesso (tipo me, fino ad un paio di mesi fa) eri costretto ad usare PHP... (Povero me!) E ci sono molte altre questioni, ma personalmente tengo presente, di solito, queste. Ve lo chiedo perchè per quello che sto facendo, in alcuni casi mi devo interfacciare con alcuni applicativi scritti in Java ed in tutti i casi mi sembrano piuttosto lenti e farraginosi. Per cui mi domandavo in quali casi uno dovrebbe scegliere Java anzichè Python. Purtroppo, in questo caso, c'é anche il problema di COME è stato scritto un sistema con cui bisogna interfacciarsi :) Purtroppo gli incapaci (e io sono presidente del loro club) usano tutti i linguaggi possibili, python, java, c++ e lisp... E il linguaggio non c'entra nulla. Io la vedo così: se non conosci i linguaggi, imparali entrambi, perché sono importanti. Se sai già programmare, allora non dovresti essere troppo preoccupato da questo. Se li conosci, allora dovresti sapere quali strumenti e quali paradigmi usa uno piuttosto che l'altro. Questo ti permette di valutare il problema che devi risolvere, e quindi capire quale linguaggio usare. Ti faccio qualche esempio molto pratico (che ho dovuto affrontare) così capisci cosa intendo. Ti danno un CSV pieno di dati di un supermercato e ti dicono di studiartelo. Python o Java? Python: puoi usare una shell interattiva (ipython) e librerie pronte e comode (pantas, numpy, scikit-learn) per fare analisi di dati. Non serve scrivere, compilare, distribuire... È un task che devi far tu, in modo molto dinamico, quindi un linguaggio dinamico va bene. Ti trovi a dover esplorare un database per capire com'é fatto. Python: anche questo è un task dinamico. Devi tenere una lezione sul machine learning ad una classe di scioperati. Ok, python o java per loro è uguale, la questione principale sarà fare il deploy. Java è la scelta migliore, perché è probabile che abbiano già JRE sul computer, mentre python sarebbe più macchinoso. La JVM contiene un sacco di belle cose, tipo Swing, quindi posso fare una GUI senza preoccuparmi di tutte le dipendenze e le installazioni. Devi buttare giù un algoritmo sui grafi che ti è venuto in mente, usi Python, perché è più veloce da scrivere (meno parole) e stai facendo qualcosa di molto specifico, quindi non ti preoccupi troppo di non avere controllo sui tipi. Oppure Devi tenere una lezione sul linguaggio Java. Usi Java, ma consigli agli studenti di usare Python (quando sono in bagno da soli :D) Mi è anche capitato di usare python in un progetto e passare i mesi
Re: [Python] Python vs Java
Bhe, se sono della Stanford non sono sicuramente nel mio club degli incapaci :D Comunque hai ragione: ho dimenticato di mettere anche un pensiero riguardo al fatto che, magari, le parti su cui vi interfacciate potrebbero avere anche una notevole complessità computazionale... Sicuro che non sia quello, più che java in sé? Avete altri software che fanno la stessa cosa e sono molto più efficienti? È vero, la JVM aggiunge un layer che rallenta l'esecuzione, ma... Dipende dai contesti. Non so che genere di applicativi Java usiate, e magari Java non è stata un'ottima scelta per quelle implementazioni. Magari, come spiegavo prima, questi sviluppatori di Stanford hanno usato Java per necessità ben sapendo che avrebbe avuto un impatto negativo sulle performance, e magari avrebbero preferito un altro linguaggio, ma Java gli è stato imposto. Comunque java è usato in modo un po' troppo pervasivo e in progetti un po' troppo grossi per farmi pensare che sia lento a prescindere. Ci sono troppe cose nel mondo java che possono andare storte e rallentare tutto, quindi è difficile capire a cosa dare la colpa (al programmatore finale, a chi ha scritto il compilatore, a chi ha scritto la JVM o chi ha scritto le librerie?) Mi guarderò il link con cautela ;) Ciao ~Ale 2014-12-29 12:42 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com: Ciao Alessandro, devo proprio ringraziarti tantissimo per la tua risposta e per le tua considerazioni che hai molto ben dettagliatamente descritto. Devo dire che non conosco assolutamente Java. Diversi mesi fa, proprio perchè dovevo interfacciarmi con questi applicativi, mi sono scaricato un manualone, ed ho letto alcuni capitoli. tutto qui... Questi applicativi sono stati scritti da ricercatori della Stanford University, e di altre università americane. Non saranno dei premi nobel della programmazione in java, ma penso che non siano nemmeno dei novizi nel campo. Un amico, decisamente un ottimo programmatore, cui ho chiesto come mai secondo lui tutti i programmi con cui mi interfaccio scritti in java sono così lenti e farraginosi, mi ha spiegato che tutti i programmi scritti in Java non vengono eseguiti direttamente ma viene eseguito sempre un solo processo, la JVM, che converte il codice in linguaggio macchina e lo esegue, diventando quindi un collo di bottiglia. Ho anche per 2 mesi provato ad usare il db neo4j: http://neo4j.com/ che ha ottime idee di base ma che, ho dovuto abbandonare, perchè piuttosto lento, ed anche lui, farraginoso. Ho ritrovato il link ad un blog che mi aveva inviato riguardo al tema: http://tech.jonathangardner.net/wiki/Why_Java_Sucks Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python vs Java
2014-12-29 13:31 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com: 2014-12-29 12:12 GMT+01:00 Alessandro Re a...@ale-re.net: quanto la sintassi del linguaggio è adatta al problema? Java e Python, seppure piuttosto diversi in termini di aspetto estetico, ricadono nella stessa famiglia di linguaggi multi-paradigma imperativi/oggetti/funzionali, quindi anche da questo punto di vista sono fondamentalmente equivalenti... Chi sostiene il contrario, di solito, è perché confonde questo punto con il punto successivo: Mi permetto di dissentire. In entrambi tutto e' a oggetti, solo che in Python non devi definire una classe per scrivere Hello World! Io ho usato Java dalla 1.2 alla 1.5. Gia' li era diventato un bailamme ingestibile. Senza contare tutto il tempo che si perdeva nelle ricompiilazioni per fare un semplice test funzionale. Con python ho trovato uno strumento perfetto. Lo so che ci sono cose per cui non e' perfetto, ma si puo' integrare bene con piccole parti scritte con altri linguaggi. Tutto è a oggetti è una cosa un po' forte da dire... È vero che in Java hai bisogno di definire una classe per fare un hello world, ma di fatto puoi fare un programma imperativo come nel caro vecchio C usando solo metodi statici. In Python hai metodi, ma anche funzioni. Ora, l'OOP per come lo vedo è solo un modo di organizzare le cose, e a me sembra che sia in Java che Python si possano scrivere dei bei programmoni assolutamente senza organizzare le cose in classi e oggetti... Quindi, come dicevo, ritengo che entrambi i linguaggi siano piuttosto flessibili sul paradigma che si può usare... E Java 1.8, se non erro, innalza le funzioni ad elementi di prima classe portando Java alla programmazione funzionale vera e propria. Sul deploy, si lo so che ci sono dipendenze, ma non e' che java ne sia poi cosi' privo. Dipende sempre dagli approcci. Poi nessuna guerra di religione. Bhe con java si ha almeno una dipendenza obbligatoria: la jvm :D Quindi non ne é privo, ma per molte cose quella basta e avanza, e spesso il deploy viene fatto fornendo tutte le dipendenze necessarie con l'eseguibile; la JVM è l'unica cosa grossa che l'utente deve procurarsi. E secondo me è anche un buon concetto. @Marco Ippolito, per tornare alla tua questione, ovviamente non so che uso fate dei pacchetti NLP di Stanford, ma alcuni degli algoritmi usati in quel campo non sono molto leggeri dal punto di vista computazionale... Quindi magari non è affatto un problema di Java. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python vs Java
Io rido per l'infografica, a partire dai punti e virgola in python, al modo in cui i dizionari vengono usati come control flow, fino al... Bhe, più o meno tutto il resto :D Mi sembra di vedere python costretto a fare un lavoro forzato da uno schjavista. Io odio comparare i linguaggi. È come comparare una zappa e un martello e dire eh cavoli, io devo piantare i chiodi e chiaramente la zappa fa cagare. Mabbaffanculo. ~Ale 2014-12-27 17:17 GMT+01:00 Luigi Fontana picchiole...@gmail.com: Sì ma kivy non è così diretto e complica le cose un pochino (abbastanza per mettere on crisi il sottoscritto). Poi il supporto android/google è comodo, a partire da Android Studio. Quello che, da principiante, non capisco è poprio il perché abbiano scelto java. Alla fine il sistema è regolato da tag xml quindi costrurie il motore su Python non penso avrebbe cambiato nulla o no? Il giorno sab 27 dic 2014 17:14 Carlos Catucci carlos.catu...@gmail.com ha scritto: 2014-12-27 17:11 GMT+01:00 Luigi Fontana picchiole...@gmail.com: Comunque java sta avendo un successo postumo per le app di android. Peccato perché è decisamente meno scorrevole di Python [image: ] Si puo' usare Kivy, che permette di pacchettizzare anche per gli iCosi, scrivendo in Python (Write Once) e facendolo girare anche su smartphones e tablets (Run Many) Carlos -- EZLN ... Para Todos Todo ... ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Fibonacci in Forth
2014-12-12 11:45 GMT+00:00 Enrico Bianchi enrico.bian...@ymail.com: On 12/11/2014 09:19 PM, Carlos Catucci wrote: Poi amerete ancora di piu' Python e la sua chiarezza E` quando vedo 'ste cose che mi chiedo quale sia il problema nel creare un linguaggio di programmazione umano... Il problema é che umano vuol dire proprio ricco di errori, di opinioni, di incertezze, di variabilità, di cose belle e brutte assieme :) Oltre al fatto che, ovviamente, noi possiamo essere più o meno abituati a certe sintassi e certi modi di fare che ci agevolano nell'uso di un linguaggio, e chi lo crea ovviamente non è necessariamente nello stesso schema mentale. Ad esempio, per me si dovrebbe usare sempre la RPN per le espressioni :D ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Blocco casuale nel codice
Ciao a tutti, tornato dalla Pycon Quattro mi son messo a fare un programmillo in python che fa uso di algoritmi genetici. Ho un piccolo problema: ogni tanto, abbastanza raramente, il programma si blocca su una return (o cosi' pare). Purtroppo non sono affatto esperto di python e il debugging mi e' tutt'ora oscuro... L'unica cosa che ho scoperto, per ora, usando delle print, e' che prima della chiamata di una certa funzione, il tutto si blocca. Ho provato con pydev, pdb ed idle, ma non riesco a venirne a capo: purtroppo non riesco ad interrompere l'esecuzione nel punto in cui si blocca (tipo con Ctrl-C), e sicuramente non posso usare dei breakpoint perche', nella ipotesi media, devo fare 2000 iterazioni prima che si blocchi... A volte si blocca subito, a volte non si blocca proprio. Sto usando Python 2.6.2, so che non e' la versione piu' aggiornata, ma per ora devo accontentarmi... Potreste consigliarmi su come procedere? Un tool che mi permetta di fermare il debug nel momento in cui premo una sequenza di tasti, che mi permetta di tornare indietro di qualche passo e vedere se ci sono delle condizioni specifiche in cui si blocca? Il codice, senza commenti, saranno circa 100 righe, potrei copiarvelo se necessario. Grazie in anticipo! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Blocco casuale nel codice
Ciao Valerio, grazie per la risposta. Con set_trace() (che non avevo visto prima) son riuscito a venirne a capo :) Comunque non ho trovato un modo di interrompere l'esecuzione (come fosse un break point) premendo una combinazione di tasti: interrompendo con Ctrl-C m'e' finalmente andato in post-mortem (prima non mi succedeva, non so se e' grazie a set_trace che ora lo fa, dalla doc non capisco) e da li son riuscito a vedere cosa bloccava, ma senza possibilita' di continuare: KeyboardInterrupt Uncaught exception. Entering post mortem debugging Running 'cont' or 'step' will restart the program In ogni caso grazie! ~Ale 2010/5/11 Valerio Turturici turturici.vale...@gmail.com: Come tool ho solo usa Il giorno mar, 11/05/2010 alle 17.28 +0200, Alessandro Re ha scritto: Potreste consigliarmi su come procedere? Un tool che mi permetta di fermare il debug nel momento in cui premo una sequenza di tasti, che mi permetta di tornare indietro di qualche passo e vedere se ci sono delle condizioni specifiche in cui si blocca? *Credo* che pdb abbia qualcosa di simile. http://docs.python.org/library/pdb.html#module-pdb Il codice, senza commenti, saranno circa 100 righe, potrei copiarvelo se necessario. Se lo metti viene di sicuro più facile aiutarti. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Blocco casuale nel codice
2010/5/11 Pietro Battiston too...@email.it: Nella mia ignoranza di una soluzione pulita, se fossi nella tua situazione probabilmente farei un try: chiamata_che_ogni_tanto_si_blocca() except KeyboardInterrupt: pass A questo punto, se ad esempio il tutto gira in un terminale interattivo, potrei, quando decido che si è piantato, dare un Ctrl+C ed ispezionare le variabili che più mi aggradano. Uuuh non ci avevo pensato! :) Bella idea, spero di ricordarmela se mi capitasse un'altra situazione simile... Grazie! ~Ale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python