Re: [Python] Come fare il match di tutti i caratteri racchiusi tra /* e */?

2015-03-15 Per discussione Roberto Polli
Scusa ma questo come lo gestisci?

Print "/* Ciao"

Print " foo "

Print "*/"

Pace.
R
Il 15/mar/2015 02:13 "germano carella"  ha
scritto:

> Ciao,
> Grazie, ho risolto così:
> pattern = r"/\*([\s\S]*?)\*/"
> Così prende tutto il commento in un gruppo e lo posso ignorare.
> Ora però mi sono imbattuto in un altro problema, ma questo è solo
> didattico:
> ho un file con una sintassi tipo file ini di windows
> [opzioni generali[
> opzione1=valore1
> opzione2=valore2
> [opzioni secondarie]
> ;qualche riga di commento
> secondaria1=3
> secondaria2=4
>
> Ora, il configparser fa il matching del file ini linea per linea e
> costruisce un dizionario.
> Io vorrei fare il matching in una volta sola, con un unico modello,
> utilizzando re.findall per mettere il risutato in una lista di tuple dove:
> [('opzini generali','opzine1=1',opzine2=2')...]
>
> Mi sto scervellando, le ho provate davvero tutte, ma proprio non ci
> riesco...
>
> 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.
>
> produzione ::= 'terminale'  | 'nonterminale> | VUOTA {codice
> da eseguire}
>
> Secondo voi dunque è possibile creare un modello unico per analizzare un
> file .ini, tanto per cominciare?
>
> Grazie dell'aiutissimo!
>
>
> Il 12/03/2015 23:46, Alessandro Re ha scritto:
>
>> 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 :
>>
>>> 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
>>
>
> ___
> 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] Threadjacking

2015-03-15 Per discussione Marco Beri
Il 15/mar/2015 02:13 "germano carella"  ha
scritto:

> 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.

Germano,
ti sei fatto threadjacking da solo.

Così magari qualcuno che conosce le grammatiche acontestuali ma se ne frega
delle regex manco l'ha letto il tuo messaggio.

Non sottovalutare la voglia che ha la gente di risparmiare la risorsa più
importante della propria vita: il tempo.

Tanti si limitano a leggere il subject, per quello è estremamente
importante e segno di attenzione agli altri pensare a un oggetto sensato.

Riprova riscrivendo un messaggio apposito ;-)

Ciao.
Marco.
___
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 Per discussione germano carella

Miseria cagnolina!
Forse premettendo un carattere di inizio riga? mi pare \b?
Ci devo pensare!!!


Il 15/03/2015 08:32, Roberto Polli ha scritto:


Scusa ma questo come lo gestisci?

Print "/* Ciao"

Print " foo "

Print "*/"

Pace.
R

Il 15/mar/2015 02:13 "germano carella" > ha scritto:


Ciao,
Grazie, ho risolto così:
pattern = r"/\*([\s\S]*?)\*/"
Così prende tutto il commento in un gruppo e lo posso ignorare.
Ora però mi sono imbattuto in un altro problema, ma questo è solo
didattico:
ho un file con una sintassi tipo file ini di windows
[opzioni generali[
opzione1=valore1
opzione2=valore2
[opzioni secondarie]
;qualche riga di commento
secondaria1=3
secondaria2=4

Ora, il configparser fa il matching del file ini linea per linea e
costruisce un dizionario.
Io vorrei fare il matching in una volta sola, con un unico
modello, utilizzando re.findall per mettere il risutato in una
lista di tuple dove:
[('opzini generali','opzine1=1',opzine2=2')...]

Mi sto scervellando, le ho provate davvero tutte, ma proprio non
ci riesco...

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.

produzione ::= 'terminale'  | 'nonterminale> | VUOTA
{codice da eseguire}

Secondo voi dunque è possibile creare un modello unico per
analizzare un file .ini, tanto per cominciare?

Grazie dell'aiutissimo!


Il 12/03/2015 23:46, Alessandro Re ha scritto:

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
mailto: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


___
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] Quali le differenze tra Celery, Zeromq, Python-RQ, Gearman per queue jobs asincroni?

2015-03-15 Per discussione Marco Ippolito
>> Qual e' l'alternativa?
>
> Capire quali sono i tuoi requisiti, definire il problema che vuoi risolvere
> e scientificamente scegliere  la soluzione appropriata.

quando hai 1 attimo, potresti dettagliare ed esemplificare
"scientificamente scegliere"?

PS: spero di aver quotato in modo opportuno
___
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 Per discussione Alessandro Re
2015-03-15 1:13 GMT+00:00 germano carella :
> 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] Quali le differenze tra Celery, Zeromq, Python-RQ, Gearman per queue jobs asincroni?

2015-03-15 Per discussione enrico franchi
2015-03-15 10:03 GMT+00:00 Marco Ippolito :

> quando hai 1 attimo, potresti dettagliare ed esemplificare
> "scientificamente scegliere"?
>

Credo che per ora potrebbe bastare qualcosa di piu' di "bah, provo questo".
Come dicevo, cercare di capire cosa serve, che requisiti deve avere e poi
cercare di capire quale sistema si avvicina di piu'. Tanto per iniziare.


-- 
.
..: -enrico-
___
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 Per discussione Roberto Polli
Il 15 marzo 2015 10:00, germano carella  ha scritto:
> Miseria cagnolina!
Non credo che le regexp gestiscano il caso. Se devi decommentare un
file .c fai prima  a farti/trovare
un parser ad-hoc.

> una grammatica
> acontestuale dove le produzioni hanno una loro sintassi particolare,
Sorry, forse qualcuno che ha studiato informatica ne sa qcs. Io non copro :(

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


Re: [Python] R: Re: R: Richiesta di aiuto

2015-03-15 Per discussione Carpediem

Grazie per i link!!!


Il 14/03/2015 18:41, Paolo Di Ieso ha scritto:



Messaggio originale
Da: manlio.peri...@gmail.com
Data: 14/03/2015 17.36
A: "Discussioni generali sul linguaggio
Python"
Cc: "Paolo Di Ieso"
Ogg: Re: [Python] R: Richiesta di aiuto

2015-03-14 15:52 GMT+01:00 Carpediem mailto:i.carped...@tiscali.it>>:

In realtà, più che un libro, è un corso trovato in rete
concepito per insegnare python a bambini di età compresa tra
10 e 14 anni. Si chiama: passo dopo passo impariamo a
programmare con python. Gli autori sono aurora martina, angelo
raffaele meo, clotilde moro e mario scovazzi. E' imbarazzante,
ma sto partendo proprio da zero assoluto.


Hai provato con Pensare da Informatico?
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm


La versione in italiano a mio avviso è davvero troppo datata, 
personalmente opterei per questo:

http://pellacini.di.uniroma1.it/teaching/fondamenti14/lectures.html

Oppure si può prendere in considerazione la sua versione aggiornata in 
inglese:

http://www.greenteapress.com/thinkpython/

In realtà per come viene trattata la parte OOP preferisco evitarlo del 
tutto e consigliarne altre versioni:

http://openbookproject.net/thinkcs/python/english3e/index.html#
http://interactivepython.org/courselib/static/thinkcspy/index.html

Riprendono la struttura dell'originale ma lo correggono/arricchiscono 
dove serve.

L'unico loro limite, se lo è, è che sono per Python 3.

Sennò, cambiare del tutto libro. :)


___
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] R: Re: R: Richiesta di aiuto

2015-03-15 Per discussione Carpediem

grazie per il chiarimento su while true.
Alla fine sono riuscito a risolvere scoprendo un errore che non mi 
veniva segnalato neanche dalla shell di python.
Due giorni di fatica spesi in gran parte a rileggere il codice e ad 
identificarmi con ogni riga di comando.
Però sono soddisfatto. Ho provato ad utilizzare la funzione while che 
funziona alla grande nel caso in cui ci fossero state tutta una serie di 
istruzioni print ma nel mio caso, a presentarsi era una richiesta di 
immissione di scelta presentata sempre con testi diversi e con la 
funzione while non sono riuscito a gestire questa cosa.
Sicuramente non ho saputo ben valutare qualcosa anche perchè in realtà 
ho risolto ripetendo più volte una parte di codice ...

Ok, si va avanti e grazie di tutto a tutti


Il 14/03/2015 17:14, Paolo Di Ieso ha scritto:


Messaggio originale
Da: i.carped...@tiscali.it
Data: 14/03/2015 15.52
A: "Paolo Di Ieso", "Discussioni generali
sul linguaggio Python"
Ogg: Re: [Python] R: Richiesta di aiuto


Riusciresti a propormi la soluzione facendomi vedere come
modificheresti la parte di codice che mi porta all'errore?
Una curiosità: ho appena avuto modo di leggere qualcosa sul
comando while e ho immediatamente provato ad utilizzarlo nel
programmino che ho allegato nel mio messaggio iniziale. vedo che
tu mi hai proposto nello schema "while true"; è solo qualcosa da
te inserito per indicare la condizione vera o esiste proprio il
comando così come lo hai scritto?


Le modifiche da fare al tuo codice per farlo funzionare come vuoi 
portano al codice che ti ho mostrato.


while True è il modo per dire "voglio un ciclo infinito". Un ciclo 
while continua finché la condizione è vera.
Se come condizione usoTrue che per definizione è sempre vero, il ciclo 
va avanti per sempre.


A meno che non lo si interrompa esplicitamente con break, o per una 
condizione d'errore.



___
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] R: Re: R: Richiesta di aiuto

2015-03-15 Per discussione Carlos Catucci
2015-03-15 20:45 GMT+01:00 Carpediem :

> Però sono soddisfatto. Ho provato ad utilizzare la funzione while che
> funziona alla grande nel caso in cui ci fossero state tutta una serie di
> istruzioni print ma nel mio caso, a presentarsi era una richiesta di
> immissione di scelta presentata sempre con testi diversi e con la funzione
> while non sono riuscito a gestire questa cosa.


Potresti usare una lista (o un dizionario, dipende da come imposti la cosa)
per far proporre ogni volta un testo differente

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] R: Richiesta di aiuto

2015-03-15 Per discussione Carpediem
Mi sono accorto anche io che separare i due argomenti era una 
stupidaggine ed un modo per complicare la rilettura del codice.

ho modificato la cosa ed ora è tutto molto più chiaro.
Dopo una serie di tentativi, sono riuscito a riscrivere il programma 
utilizzando il comando while. gira alla perfezione e ho risparmiato 
decine di righe di codice.

Unica pecca, avevo scritto:
errori=0
while true:
misura_nota=input()
ma proprio qui all'inizio la shell di python mi blocca l'esecuzione 
dicendomi che il nome true non è stato definito


Sono riuscito ad andare avanti solo impostando il programma scrivendo:
errori=0
while errori>=0:
misura_nota=input()
...

perchè scrivendo while true come mi hai suggerito ricevo il messaggio di 
errore?

grazie di tutto

Il 14/03/2015 17:36, Manlio Perillo ha scritto:
2015-03-14 15:52 GMT+01:00 Carpediem >:


In realtà, più che un libro, è un corso trovato in rete concepito
per insegnare python a bambini di età compresa tra 10 e 14 anni.
Si chiama: passo dopo passo impariamo a programmare con python.
Gli autori sono aurora martina, angelo raffaele meo, clotilde moro
e mario scovazzi. E' imbarazzante, ma sto partendo proprio da zero
assoluto.


Hai provato con Pensare da Informatico?
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm

In realtà mi sto aiutando cercando di acquisire informazioni anche
da altre fonti in rete e sono in attesa di un libro "vero"
comprato da feltrinelli "programmare con python guida compleata".
Vorrei riuscire a portare avanti questa sfida anche pechè mi rendo
conto che la materia mi attrae molto.
Ti ringrazio per la tua risposta ma se dai un'occhiata al mio
schema, non è molto diverso da quello che mi hai indicato.
Il problema è che vorrei continuare a mantenere la serie di
diverse risposte previste a seconda di quante volte si ripete la
risposta errata.
In realtà, se metti in esecuzione il mio schema, noterai subito il
seguente comportamento: 1)se si immette immediatamente una
qualsiasi risposta giusta tutto funziona come previsto. 2)Se si
immettono ad oltranza risposte sbagliate, tutto funziona come
previsto. 3)Se invece si immette una prima risposta errata ma
immediatamente dopo se ne immette una esatta, a questo punto il
programma invece che tornare a proporre l'inserimento delle
misure, continua a comportarsi come se avessi nuovamente immesso
una risposta errata. Ed è proprio questo il punto che non riesco a
correggere.


Perchè hai separato la parte dove chiedi una delle misure del cerchio, 
e la parte dove stampi la risposta?
Come ti hanno già suggerito, fai il controllo sull'input dell'utente 
*una sola* volta.
Ogni volta che l'utente sbaglia, incrementa una variabile tipo 
`errori`; ogni volta che l'utente fa la cosa giusta, resetta errori a 0.


errori = 0
while true:
  m = input("dato conosciuto")

  if m == "a":
...
errori = 0
  else if m == "d":
...
errori = 0
  else:
errori = errori + 1
if errori == 1:
  print("devi inserire...")
else if errori == 2:
  print("Hai sbagliato ancora! ...")
else if errori == 3:
  print("Lascia perdere...")
else if errori == 4:
  print("La prossima volta...")
  break

Probabilmente c'è un modo migliore per farlo, ma al momento non mi 
viene in mente.


> [...]

Ciao  Manlio


___
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] R: Richiesta di aiuto

2015-03-15 Per discussione Carlos Catucci
2015-03-15 22:52 GMT+01:00 Carpediem :

> perchè scrivendo while true come mi hai suggerito ricevo il messaggio di
> errore?


In Python True e False (e anche None) devono iniziare con la maiuscola.
Altrimenti le vede come variabili.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
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 Per discussione enrico franchi
2015-03-15 1:13 GMT+00:00 germano carella :

>
> pattern = r"/\*([\s\S]*?)\*/"
>

Ok. Bene per questo. L'altra cosa che avrei valutato sarebbe stato un
mini-parser a manella... piuttosto ok da scrivere.
Aggiungo che stopperei il concetto di parsare C a botte di regex su
questo... ci sono alcuni casi limite da gestiere. Per esempio in C i
commenti con /* */ nestati non sono validi, ma nel tuo caso specifico
potresti volere gestire la cosa comunque.

> produzione ::= 'terminale'  | 'nonterminale> | VUOTA
{codice da eseguire}

>
> Secondo voi dunque è possibile creare un modello unico per analizzare un
> file .ini, tanto per cominciare?ao Germano,


Secondo me e' possibile che stai cercando di usare lo strumento sbagliato.
Cioe' tu vorresti fare cosa?
Vuoi scrivere un parser generator che a partire da una CFG ti genera il
parser? A cosa serve il file INI?
Vuoi parsare un file INI? Secondo me ci sono modi piu' comodi di una
regex...
Cosa mi sto perdendo?

E giurami che non hai intenzione di parsare del C solo con delle regex...

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