Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Perini Matteo

Il 19/03/2014 15:58, Balan Victor ha scritto:
Devo realizzare una griglia interattiva, in cui ad ogni click del 
mouse cambi lo stato della cella da 0 a 1 (ad esempio), e mi conti 
quante celle sono a 1 sia nella riga che nella colonna.
Magari dico cavolate ma io, se i valori della griglia fossero solo 
numerici, punterei ad un array numpy.


griglia=np.zeros((righe,colonne))


def click(x,y):
   griglia[x,y]=1-griglia[x,y] #considerando il ciclo tra 0 e 1
   sumx=griglia[x,:].sum()
   sumy=griglia[:,y].sum()

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


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Marco Buttu

On 03/20/2014 12:19 PM, Giuseppe Amato wrote:
Il giorno 20 marzo 2014 12:15, Marco Beri > ha scritto:


2014-03-20 12:02 GMT+01:00 Giuseppe Amato mailto:giuam...@gmail.com>>:

Io userei il modulo:

var = (var + 1) % 3

Questo costrutto cicla tra 0, 1, 2.

Marco sei inestimabile!
Qualcuno ha qualche risorsa dove posso trovare costrutti del genere?


Potresti dare uno sguardo al modulo itertools [1] della libreria standard:

>>> import itertools
>>> i = itertools.cycle(('pippo', 'franco', 3))
>>> next(i)
'pippo'
>>> next(i)
'franco'
>>> next(i)
3
>>> next(i)
'pippo'


[1] http://docs.python.org/3/library/itertools.html

--
Marco Buttu

INAF-Osservatorio Astronomico di Cagliari
Via della Scienza n. 5, 09047 Selargius (CA)
Phone: 070 711 80 217
Email: mbu...@oa-cagliari.inaf.it

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


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Lorenzo Sutton

On 20/03/2014 13:18, Marco Beri wrote:

2014-03-20 13:05 GMT+01:00 Lorenzo Sutton mailto:lorenzofsut...@gmail.com>>:

On 20/03/2014 12:02, Giuseppe Amato wrote:


Il giorno 19 marzo 2014 16:04, Marco Beri mailto:marcob...@gmail.com>
>> ha
scritto:



 Quando devo fare sì che una variabile cicli tra 1 e 0
preferisco
 questa sintassi:

 var = 1 - var


E volendo ciclare tra tre valori è necessario un costrutto
if...elif o
ci sono metodi più efficienti?


var = False
# on_click..
var = not(var)


Questo cicla tra False e True (anche se scritto così riparte sempre da
False).


sì sì.. l'inizializzazione non era intesa come parte del ciclo, ma 
comunque..




Lui ha chiesto tra 3 valori.


Azz è vero.

Nella email originale parlava di "ad ogni click del mouse cambi lo stato 
della cella da 0 a 1 (ad esempio)"


Ma, chiaramente, io non ho letto accuratamente il cambio di specifiche - 
e questo è molto male :-(


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


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Marco Beri
2014-03-20 13:05 GMT+01:00 Lorenzo Sutton :

> On 20/03/2014 12:02, Giuseppe Amato wrote:
>
>>
>> Il giorno 19 marzo 2014 16:04, Marco Beri > > ha scritto:
>>
>>
>>
>> Quando devo fare sì che una variabile cicli tra 1 e 0 preferisco
>> questa sintassi:
>>
>> var = 1 - var
>>
>>
>> E volendo ciclare tra tre valori è necessario un costrutto if...elif o
>> ci sono metodi più efficienti?
>>
>
> var = False
> # on_click..
> var = not(var)
>

Questo cicla tra False e True (anche se scritto così riparte sempre da
False).

Lui ha chiesto tra 3 valori.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Carlos Catucci
2014-03-20 12:35 GMT+01:00 Marco Beri :

> Ho una moglie, un paio di figli e qualche amico che la pensano in maniera
> diametralmente opposta :-)


Ci ho provato! In fondo era mio dovere in qualita' di fondatore del tuo fan
club.

Carlos
-- 
Coloro che sognano di giorno sono uomini pericolosi, perche' sono capaci di
recitare a occhi aperti il loro sogno fino a renderlo possibile. Ed e'
questo che feci anch'io. - (T.E. Lawrence)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Lorenzo Sutton

On 20/03/2014 12:02, Giuseppe Amato wrote:


Il giorno 19 marzo 2014 16:04, Marco Beri mailto:marcob...@gmail.com>> ha scritto:


Quando devo fare sì che una variabile cicli tra 1 e 0 preferisco
questa sintassi:

var = 1 - var


E volendo ciclare tra tre valori è necessario un costrutto if...elif o
ci sono metodi più efficienti?


var = False
# on_click..
var = not(var)

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


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Marco Beri
On 20 Mar 2014 12:23, "Carlos Catucci"  wrote:
>
> 2014-03-20 12:19 GMT+01:00 Giuseppe Amato :
>>
>> Marco sei inestimabile!
>
>
> Proporrei di clonarlo. Il mondo ha bisogno di persone come lui. ;)

Ho una moglie, un paio di figli e qualche amico che la pensano in maniera
diametralmente opposta :-)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Carlos Catucci
2014-03-20 12:19 GMT+01:00 Giuseppe Amato :

> Marco sei inestimabile!


Proporrei di clonarlo. Il mondo ha bisogno di persone come lui. ;)

Carlos
-- 
Coloro che sognano di giorno sono uomini pericolosi, perche' sono capaci di
recitare a occhi aperti il loro sogno fino a renderlo possibile. Ed e'
questo che feci anch'io. - (T.E. Lawrence)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Giuseppe Amato
Il giorno 20 marzo 2014 12:15, Marco Beri  ha scritto:

> 2014-03-20 12:02 GMT+01:00 Giuseppe Amato :
>
> Io userei il modulo:
>
> var = (var + 1) % 3
>
> Questo costrutto cicla tra 0, 1, 2.
>
> Marco sei inestimabile!
Qualcuno ha qualche risorsa dove posso trovare costrutti del genere?

Ciao


-- 

Giuseppe Amato
e-mail: giuam...@gmail.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Marco Beri
2014-03-20 12:02 GMT+01:00 Giuseppe Amato :

>
> Il giorno 19 marzo 2014 16:04, Marco Beri  ha
> scritto:
>
>
>> Quando devo fare sì che una variabile cicli tra 1 e 0 preferisco questa
>> sintassi:
>>
>>var = 1 - var
>>
>
> E volendo ciclare tra tre valori è necessario un costrutto if...elif o ci
> sono metodi più efficienti?
>

Io userei il modulo:

var = (var + 1) % 3

Questo costrutto cicla tra 0, 1, 2.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Giuseppe Amato
Il giorno 19 marzo 2014 16:04, Marco Beri  ha scritto:

>
> Quando devo fare sì che una variabile cicli tra 1 e 0 preferisco questa
> sintassi:
>
>var = 1 - var
>

E volendo ciclare tra tre valori è necessario un costrutto if...elif o ci
sono metodi più efficienti?


-- 

Giuseppe Amato
e-mail: giuam...@gmail.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] alternative ad eval

2014-03-20 Per discussione Riccardo Lemmi
Balan Victor wrote:

>>
>> Siccome a naso quello che vuoi fare e' un semplice expression
>> language, hai comunque bisogno, a mio avviso di un vero parser.
>> Davvero, e' roba facile da scrivere, una volta che usi la libreria
>> giusta, e' piu' robusto e quando si spacca si capisce meglio perche'.
>>
> 
> quindi pyparsing?
> Facili da scrivere ... se uno ha basi solide sull'argomento. Io che, a
> parte un po su wikipedia, sono completamente ignorante nella materia
> mi trovo un po spaesato XD
> 
> ora cmq provo a vedere se riesco a creare qualcosina con pyparsing.
> 
> Alcune librerie ci sono, ad esempio:
>>   https://pypi.python.org/pypi/RestrictedPython
>> ce ne sono anche altre: cerca "restricted python" su pypi.
> 
> 
> Ho dato un'occhiata e, anche se fosse sicuro al 100%, non mi risolve
> il secondo problema: ossia evitare operazioni del tipo "1 *
> 10". Come ho scritto nel primo post gli utenti che generano queste
> stringhe sono solo utenti autorizzati. Quindi è difficile che facciano
> cose "stupide". E' molto più facile che commettano errori che possano
> saturare la macchina...

Allora qesta libreria mi pare più adatta:

  https://pypi.python.org/pypi/simpleeval

ma tieni conto che (per quello che mi ricordo da Informatica II) quel 
tipo di problemi dovrebbe far parte della categoria degli 'indecidibili' 
quindi ammesso che il problema sia risolvibile si deve comunque usare un 
linguaggio con un domino ridotto (in modo che non sia idempotente con la 
macchina di Turing), da cui la necessità usare una grammatica adeguata.

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