Re: [Python] media di un generatore

2013-12-11 Per discussione Marco Chieppa | crap0101
Il giorno Tue, 10 Dec 2013 23:20:10 -0500
Piergiuliano Bossi pgbo...@gmail.com ha scritto:

 Pensiero malvagio:
 - con enumerate genero una serie di coppie (v, n)
 - le zippo e quindi ottengo 2 sequenze (v1, v2, ...) e (1, 2, ...) =
 assumo di poter zippare le generator expression, oppure gia' qui sto
 sbagliando?
 - calcolo le somme di entrambe
 - sfrutto il fatto che sum(1, 2, ...) altri non e' che n * (n + 1) / 2, per
 cui divido sum(v1, v2, ...) per la soluzione positiva di n^2 + n - 2 *
 sum(1, 2, ...) = 0, cioe' 1/2 * (sqrt(8 * sum(1, 2, ..) + 1) - 1)
 
 
 Potrebbe funzionare, ma e' talmente assurdo che manco ci provo a vedere se
 sto toppando qualcosa. :)
 

mhh... magari funziona però non mi sembra molto conveniente e
soprattutto leggibile stare a zippare e unzippare più del necessario.
Inoltre, invece di fare tutti quei calcoli con sqrt e altro, basta _non_
usare enumerate ma simularlo con una genexpr che yielda tuple di valori
della sequenza in uso e uni che poi sommi tra loro senza fare altre
operazioni, tipo così:

import itertools, operator

def avgfoo(seq):
  try:
return operator.div(*map(sum, itertools.izip(*((x, 1.) for x in seq
  except TypeError:
return 0

avgfoo(range(10)) # 4.5


che però oltre ad essere molto meno leggibile dovrebbe essere anche
(molto) meno efficiente e inutilmente complessa.






-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] media di un generatore

2013-12-10 Per discussione Marco Chieppa | crap0101
Il giorno Tue, 10 Dec 2013 18:58:48 -0500
Piergiuliano Bossi pgbo...@gmail.com ha scritto:

 On Tuesday, December 10, 2013, Marco Beri wrote:
 [...]
 
  def avg(gen):
  n, sum_ = 0, 0.0
  for v in gen:
  sum_ += v
  n += 1
  return sum_ / n
 
  Cos'ha questo di brutto? Tra l'altro funziona anche con le liste e le
  tuple..
 
 
 
 Nulla, ma è il modo più idiomatico di farlo? Fate tutti così? Dai
 confessa... :)
 

non molto diverso in realtà... ma potresti usare enumerate:

def avg(seq):
tot = 0.0
for n, v in enumerate(seq, 1):
tot += v
try:
return tot / n
except UnboundLocalError:
return 0 # ???

capisco che il try/except finale non è molto bello, ma forse lo dovrai/vorrai
utilizzare anche con altri metodi, nel caso in cui passi una sequenza che non
contiene alcun elemento (ad esempio nell'altro codice sopra avresti un
ZeroDivisionError).
 
Non ho capito bene quando parli di

 la creazione di 2 iteratori in itertools.izip(*generator)

non mi pare faccia quello che ti serve, forse intendevi itertools.tee ?
Quest'ultimo potrebbe essere una soluzione però non credo valga la pena di
creare dei doppioni (soprattutto con sequenze lunghe) quando puoi fare con un
unico for...

def avgtee(seq):
it1, it2 = itertools.tee(seq)
try:
return sum(it1) / float(sum(1 for _ in it2))
except ZeroDivisionError:
return 0 # ???

non ho fatto test particolarmente approfonditi, btw qualche risultato:

In [22]: lst = list(range(10))

In [23]: %timeit avg(lst)
100 loops, best of 3: 12.2 ms per loop

In [24]: %timeit avgtee(lst)
100 loops, best of 3: 9.27 ms per loop

In [25]: gen = (x for x in lst)

In [26]: %timeit avg(gen)
10 loops, best of 3: 2.07 us per loop

In [27]: gen = (x for x in lst)

In [28]: %timeit avgtee(gen)
10 loops, best of 3: 3.57 us per loop






-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Copiare un file

2013-10-24 Per discussione Marco Chieppa | crap0101
Il giorno Thu, 24 Oct 2013 11:34:27 +0200
Daniele Palmese pal...@gmail.com ha scritto:

 Il giorno 24 ottobre 2013 09:10, Luigi Fontana picchiole...@gmail.com ha
 scritto:
 
  Quindi devo prima usare un comando che mi crei un file vuoto e poi
  copiarci dentro i dati?
 
 
 No, devi semplicemente indicare il nome del file di destinazione, facendo
 attenzione al path:
 
 shutil.copyfile('prova01.py',
 '/path/di/destinazione/Documenti/come_vuoi_chiamarlo.py')
 
 Ciao.
 Daniele

oppure usi l'altra funzione segnalata che ti crea un file con lo stesso nome
di quello che vai a copiare nella dir indicata da dst. Dipende cosa ti è più
comodo.




-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Copiare un file

2013-10-23 Per discussione Marco Chieppa | crap0101
Il giorno Wed, 23 Oct 2013 22:18:04 +0200
Luigi Fontana picchiole...@gmail.com ha scritto:

 Ciao
 
 Nella mia cartella Programmi  ho un file chiamato prova01.py. Volevo
 copiarlo nella cartella Documenti  ma col comando
 
 shutil.copyfile(prova01.py, Documenti)
 
 Mi da errore.
 
 Cosa sbaglio?
 

dalla doc: 
shutil.copyfile(src, dst)
  Copy the contents (no metadata) of the file named src to a file named dst.
  dst must be the complete target file name; look at shutil.copy() for a copy
  that accepts a target directory path.

dst dev'essere il file di destinazione.





-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] cicli multi processo

2013-10-23 Per discussione Marco Chieppa | crap0101
Il giorno Thu, 24 Oct 2013 00:06:18 +0200
Simone Federici s.feder...@gmail.com ha scritto:

 On Wed, Oct 23, 2013 at 11:41 AM, Vittorio Spina
 vsp...@team-italia.itwrote:
 
  quindi in pratica un ciclo su un vero thread separato e un ciclo nel main
  che si scambiano una variabile?
 
 [...]
 
 
 è solo un esempio preso paro paro dal tuo codice sui threads
 però ti conviene approfondire i Manager, Queue e Pipe

Inoltre se con che si scambiano una variabile intendi che i due (o più)
processi possono modificarla oltre che leggerla devi usare per forza i Lock.





-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] problema di licenze...

2013-09-08 Per discussione Marco Chieppa | crap0101
Il giorno Sun, 08 Sep 2013 10:18:13 +0200
Perini Matteo perini.mat...@gmail.com ha scritto:

 
 Qualcuno mi potrebbe dare una dritta su che licenza devo/posso 
 utilizzare in un contesto simile.

Pygame non usa la gpl ma la lgpl 2.1, mentre quella di PIL è una mit-like.

 Sono rimasto stupito di vedere sul sito di numpy ad esempio è riportata 
 [0] BSD License ma se clicco sul link License [1] trovo:
 Copyright © 2005-2013, NumPy Developers. All rights reserved.
 
 
 [0] http://www.numpy.org/index.html
 [1] http://www.numpy.org/license.html
 
 Mi sono perso qualche cosa?

è proprio quella, che continua nelle righe sotto :-)

 Comunque la questione fondamentale è come posso rilasciare il mio codice 
 che include le librerie sopra  e con che licenze posso farlo.
 Grazie
 Ciao
 M.

Sono tutte compatibili tra loro per cui puoi usarne una qualsiasi tra quelle.




 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python



-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Appena iscritto

2013-08-03 Per discussione Marco Chieppa | crap0101
Il giorno Sat, 3 Aug 2013 19:24:16 +0200
Carlos Catucci carlos.catu...@gmail.com ha scritto:

 2013/8/3 Marco Chieppa | crap0101 crap0...@riseup.net
 
  python therapy?
 
 
 Un pitone come pet?
 
 Carlos

o come terapia d'urto, non son sicuro...


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemi con time

2013-06-27 Per discussione Marco Chieppa | crap0101
Il giorno Fri, 28 Jun 2013 03:01:02 +0200
Marcello marce...@linuxvil.it ha scritto:

 Ciao a *
 
 ho una stringa che recupero da un DB
 tempo = 2013-06-25 16:25:00
 
 e dovrei modificare in
 25/06/2013 16:25
 
 potrei utilizzare string per spostare i caratteri, ma vorrei utilizzare
 time per vari motivi.
 quindi provo con
 
 print time.strftime(%d/%m/%Y %H.%M ,time.localtime(tempo))
 
 [...]

così?

 tempo = 2013-06-25 16:25:00
 time.strftime(%d/%m/%Y %H:%M, time.strptime(tempo,%Y-%m-%d %H:%M:%S))
'25/06/2013 16:25'

(localtime non si aspetta una stringa)





signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] doctest: SyntaxError: EOF while scanning triple-quoted string literal

2012-09-20 Per discussione Marco Chieppa | crap0101
Il giorno Tue, 18 Sep 2012 21:30:15 +0200
Pietro peter.z...@gmail.com ha scritto:

 
 Perché il primo doctest funziona e il secondo no?
 Perché mandare a capo all'interno della triple quotig dovrebbe essere
 un problema?
 

Il problema non è andare a capo ma come vai a capo.
Il codice che testi deve assomigliare a quello che avresti in una sessione
interattiva, per cui devi mettere i  e ... quando serve, cioè dovrebbe
essere

 mathmlstr = '''mrow  
... msupmia/mimn2/mn/msup/mrow'''








-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] modulo v4l

2012-04-22 Per discussione Marco Chieppa | crap0101
Il giorno Sun, 22 Apr 2012 22:33:51 +0200
Francesco Bonanno i...@francescobonanno.com ha scritto:

 Salve, è la seconda volta che chiedo un consiglio alla lista.
 ho la necessità di installare il modulo(?) v4l (video for linux).
 Cercando in rete ho trovato un sacco di roba ma che alla fine facendo 
 import v4l, ho la solita risposta di no module named v4l.

ma... il modulo funzionante dove l'avevi preso? Si riesce a capire leggendo
nei file?

 Ho un sacco di codice scritto usando questo modulo e mi 
 costerebbe tantissimo doverlo riadattare 

Non vorrei scoraggiarti, però facendo una rapida ricerca ho trovato 4
progetti di v4l per python (di cui uno con nulla dentro :-) ); il primo

http://pyv4l.sourceforge.net/
è ormai non più mantenuto e considerato obsoleto (e da pezzi di codice
trovati in giro temo proprio si tratti di questo)

il secondo è questo
http://code.google.com/p/python-video4linux2/source/browse/#svn%2Ftrunk%253Fstate%253Dclosed
e non sembra passarsela meglio del primo, e infine su pypi

http://pypi.python.org/pypi/v4l2

anche di questo l'ultimo update non è recentissmo, ma forse è meglio dei
precedenti.

Inoltre, se non ho capito male e le api di v4l sono cambiate (come sembra
indicare il link nel primo link) neanche trovare e usare quello/i vecchi
potrebbe andare più bene.


ciao,
m.




-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Libro Programmare con Python.

2012-01-18 Per discussione Marco Chieppa | crap0101
Il giorno Thu, 19 Jan 2012 01:24:38 +0100
Marco Beri marcob...@gmail.com ha scritto:

 2012/1/19 Emanuele Rampichini emanuele.rampich...@gmail.com
 
  L'import error é ripetuto identico sulla colonna di python2 e python3 :)
 
  Ho vinto qualcosa?
 
 No :-)
 
 Per due motivi:
 
- non è identico
- se anche lo fosse io ho parlato di inversione
 

la sesta?

1 in d  --  d.has_key(1)







-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Un aiuto per neofita alle prime armi

2012-01-14 Per discussione Marco Chieppa | crap0101
Il giorno Fri, 13 Jan 2012 12:12:13 +0100
Alberto Abate alberto.ab...@gmail.com ha scritto:

 Ciao,
 per iniziare penso che ti sia utile vedere questi...
 
 http://www.youtube.com/playlist?list=PLC64779F4E2E7EB10feature=g-all-a
 
 

oh no! nessun neofita dovrebbe essere esposto a quei video, fanno più male che 
bene (nell'ipotesi migliore non fanno nulla).




-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] tkinter di esempio che si blocca

2010-12-20 Per discussione crap0101
Il giorno lun, 20/12/2010 alle 22.58 +0100, Massimo Capanni ha scritto:

 se premo QUIT il prompt viene restituito nella shell ma la finestra di
 Tk si blocca:
 [...]
quit() ti fa uscire dal mainloop, però se vuoi distruggere la finestra
devi chiamare destroy()



-- 
me - http://crap0101.gnu-darwin.org/


signature.asc
Description: Questa è una parte del messaggio firmata digitalmente
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] script bash-pipe compatibile

2009-10-24 Per discussione crap0101
Il giorno sab, 24/10/2009 alle 15.15 +0200, Matteo Bertini ha scritto:
 Il 24/10/09 14.43, Giorgio Zoppi ha scritto:
  popen?
 
 Non capisco in che modo, non ho sottoprocessi, forse mi sono spiegato male.
già... ho inteso male.

m.


signature.asc
Description: Questa è una parte del messaggio	firmata digitalmente
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] script bash-pipe compatibile

2009-10-24 Per discussione crap0101
Il giorno sab, 24/10/2009 alle 14.32 +0200, Matteo Bertini ha scritto:

 
 Ho provato un po' a giocare con try except senza però beccare il punto 
 giusto...
 
 Suggerimenti?
 Matteo Bertini
 
 ___

Ho fatto qualche prova e così dovrebbe funzionare, ma penso anch'io che
la soluzione migliore sia popen

crap0...@gns01:~/Scrivania$ cat echo2.py 
import sys

def gs ():
for line in sys.stdin:
  yield line


if __name__ == '__main__':
try:
sys.stdout.writelines (gs ())
except IOError:
pass
crap0...@gns01:~/Scrivania$ python -c for x in range(200): print
'line'*(x+1) | python echo2.py | head -n 5
line
lineline
linelineline
linelinelineline
linelinelinelineline
crap0...@gns01:~/Scrivania$ 

 
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python
-- 
me - http://crap0101.gnu-darwin.org



signature.asc
Description: Questa è una parte del messaggio	firmata digitalmente
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python