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

2015-03-14 Per discussione germano carella

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


Re: [Python] Suggeritore di convenzioni Python.

2015-03-14 Per discussione Francesco Pischedda
Il giorno 14 marzo 2015 17:06, enrico franchi  ha
scritto:

>
> 2015-03-14 9:17 GMT+00:00 Gollum1 :
>
>> Purtroppo io non ne conosco, ma forse questa precisazione può indirizzare
>> le risposte.
>>
>
> Guarda che pylint, pyflakes e combriccola gia' suggerita fanno proprio
> questo. Poi i vari IDE/editor li chiamano in qualche maniera (vuoi come
> libreria, vuoi proprio alla grezza come comando parsando l'output) e ti
> fanno vedere la roba in linea.
>
> +1

Francesco
-- 
"Shipping is a feature. A really important feature. Your product must have
it."

"Unix IS user friendly. It's just selective about who its friend are"

"La gatta frettolosa ha fatto i gattini ciechi"

"C is quirky, flawed, and an enormous success."
   -- Dennis Ritchie
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2015-03-14 Per discussione Paolo Di Ieso





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 :

  

  
  
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


Re: [Python] R: Richiesta di aiuto

2015-03-14 Per discussione Manlio Perillo
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] R: Re: R: Richiesta di aiuto

2015-03-14 Per discussione Paolo Di Ieso




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


Re: [Python] Smettete di scrivere shell script (era: Re: Lanciare script da altro script)

2015-03-14 Per discussione Carlos Catucci
2015-03-14 17:05 GMT+01:00 enrico franchi :

> E anche a me piacerebbe migrare, figurati. Semplicemente non abbiamo le
> risorse per farlo. Piu' tutte le incognite sul mettere in produzione
> qualcosa di bene o male ignoto, il ritorno d'investimento limitato dal
> fatto che il codice e' vecchio (ovvero, e' improbabile  che lo
> riscriveremmo tutto usando il meglio che Python 3 offre, probabilmente si
> riscriverebbe il minimo per farlo funzionare con Python 3).


Infatti la rottura di compatibilita' sta frenando l'adozione. Aggiiungiamo
che fino a pochissimo tempo fa i principali frameworks non lo supportavano.
Certo se devo partire con un progetto da zero ci spendo tempo per
apprendere bene le cose migliorate che indicavi e lo uso, ma riscrivere
roba vecchia e testata, non si riuscira' a fare mai.

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


Re: [Python] Suggeritore di convenzioni Python.

2015-03-14 Per discussione enrico franchi
2015-03-14 9:17 GMT+00:00 Gollum1 :

> Purtroppo io non ne conosco, ma forse questa precisazione può indirizzare
> le risposte.
>

Guarda che pylint, pyflakes e combriccola gia' suggerita fanno proprio
questo. Poi i vari IDE/editor li chiamano in qualche maniera (vuoi come
libreria, vuoi proprio alla grezza come comando parsando l'output) e ti
fanno vedere la roba in linea.


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


Re: [Python] Smettete di scrivere shell script (era: Re: Lanciare script da altro script)

2015-03-14 Per discussione enrico franchi
2015-03-14 12:20 GMT+00:00 Enrico Bianchi :

> credo che l'unico discorso su cui siamo in disaccordo sia riguardo a
> Python 3 (tu ti vedi scettico e pensi che sia stato un errore, io penso che
> sia stato un bene e che  sia giusto migrare, nei limiti del possibile)


Si. E' cosi'. O meglio, io non e' che sono scettico verso Python 3; penso
che, con il senno di poi, la scelta di rompere la compatibilita' sia stata
sottovalutata nel senso che per molti (incluso il sottoscritto) quello che
Python 3 offre non e' troppo appetibile rispetto al costo di migrare
baracca e burattini. Sono altrettanto convinto che se lavorassi su Python 3
per qualche tempo non vorrei tornare indietro. Ci sono tante piccole
migliorie che, come sempre con Python, danno il meglio in concerto (e
proprio l'insieme e' il grosso vantaggio); viceversa, se le guardi una per
volta, non dicono troppo.

E anche a me piacerebbe migrare, figurati. Semplicemente non abbiamo le
risorse per farlo. Piu' tutte le incognite sul mettere in produzione
qualcosa di bene o male ignoto, il ritorno d'investimento limitato dal
fatto che il codice e' vecchio (ovvero, e' improbabile  che lo
riscriveremmo tutto usando il meglio che Python 3 offre, probabilmente si
riscriverebbe il minimo per farlo funzionare con Python 3).

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


Re: [Python] R: Richiesta di aiuto

2015-03-14 Per discussione 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. 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.
Sono certo che mandando in esecuzione il programmino ti sarà 
immediatamente più chiaro quanto sto chiedendo.
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?

Grazie per la disponibilità.

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

Messaggio originale
Da: i.carped...@tiscali.it
Data: 13/03/2015 21.07
A: "Discussioni generali sul linguaggio Python"
Ogg: [Python] Richiesta di aiuto

In un libro che sto leggendo,

Solo per curiosità: quale?


Tutto ok nell'ipotesi in cui si continuino ad immettere una
serie di input errati fino a giungere al numero massimo di errori di
immissione contemplati ma, se dopo la prima immissione di input errato
successivamente si immette il giusto dato, non riesco a fare in modo che
il programma torni a riproporre l'originaria sequenza di richieste
programmate. (fate prima a controllare facendo girare il programmino che
non a tentare di stare a seguire i miei tentativi di spiegare la cosa).
Qualcuno di voi avrebbe la pazienza di dare un'occhiata al codice da me
scritto e suggerirmi una soluzione?

Puoi usare uno scherma di questo tipo:

menu = """
Scegli una delle seguenti opzioni
a: area del cerchio
r: raggio del cerchio
...
esci: uscita dal programma
"""

while True:
 print(menu)
 scelta = input("Scelta: ")
 if scelta == "a":
 # chiedi il valore di a e fai quello che serve
 elif scelta == "r":
 # chiedi il valore di r e fai quello che serve
 elif scelta == "esci":
 break
 else:
 print("Scelta errata")

___
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] Smettete di scrivere shell script (era: Re: Lanciare script da altro script)

2015-03-14 Per discussione Enrico Bianchi

On 03/09/2015 07:28 PM, enrico franchi wrote:

Io credo che siamo in quasi completo accordo su tutta la faccenda.


Lo penso anche io, anzi, credo che l'unico discorso su cui siamo in 
disaccordo sia riguardo a Python 3 (tu ti vedi scettico e pensi che sia 
stato un errore, io penso che sia stato un bene e che  sia giusto 
migrare, nei limiti del possibile) :)


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


[Python] VIPER Python per Arduino ed embedded

2015-03-14 Per discussione Daniele Mazzei
Ciao a tutti,
Vi scrivo per segnalarvi un nuovo prodotto che con altri tre colleghi ho
sviluppato e stiamo lanciando in questi giorni.

VIPER è una virtual machine python per Arduino e similari. Si appoggia su
un sistema operativo multithreaded e real-time anch'esso completamente
sviluppato in Italia (ChibiOS).
Con VIPER è possibile programmare in Python 3 tutte le schede ARM 32bit e
quindi ARDUINO DUE, UDOO, Spark (tutte le board) e le nuove ST
Microelectronic Nucleo.

Potete trovare maggiori informazioni e dettagli tecnici
sull'implementazione (compresi dettagli di compatibilità e portabilità) qua
http://bit.ly/kickviper

Stiamo cercando di finanziare la finalizzazione dello sviluppo di VIPER
attraverso Kickstarter. Se la campagna avrà successo VIPER verrà rilasciato
opensource!
Dateci una mano a portare Python nel mondo dell'embedded e del DiY!

Ciao a tutti
Daniele

Daniele Mazzei, PhD
Research Assistant
Phd on Biomedical Engineering
Research Center "E.Piaggio"
Tel: +39-050-2217061
Faculty of Engineering
Largo Lucio Lazzarino, 1 56122 Pisa
Italy

http://www.danielemazzei.it - http://www.faceteam.it –
http://www.fablabpisa.org

Please consider your environmental responsibility.  Before printing this
e-mail please ask yourself: "Do I really need a hard copy?"
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Suggeritore di convenzioni Python.

2015-03-14 Per discussione Gollum1
Ciao Gabriele, se ricordo bene ti sei ipovedente, giusto? Nel quasi caso credo 
che valga picco un editor che ti corregga durante la digitazione, non credo che 
siano eventi catturabili dallo screen reader. 
Quindi presumo che quello che stai cercando sia effettivamente un parser a cui 
passare il file una volta salvato, e che restituisca un elenco di suggerimenti 
da applicare al codice.
Purtroppo io non ne conosco, ma forse questa precisazione può indirizzare le 
risposte. 
Buon coding.

E niente pasta alla crema... È attualmente vietata anche a me... ;-) 

Byez
-- 
Gollum1
Teoro, dov'è il mio teoro

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli 
errori di battitura (maledetto correttore automatico).
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] R: Richiesta di aiuto

2015-03-14 Per discussione Paolo Di Ieso
>Messaggio originale
>Da: i.carped...@tiscali.it
>Data: 13/03/2015 21.07
>A: "Discussioni generali sul linguaggio Python"
>Ogg: [Python] Richiesta di aiuto
>
>In un libro che sto leggendo,

Solo per curiosità: quale?

>Tutto ok nell'ipotesi in cui si continuino ad immettere una 
>serie di input errati fino a giungere al numero massimo di errori di 
>immissione contemplati ma, se dopo la prima immissione di input errato 
>successivamente si immette il giusto dato, non riesco a fare in modo che 
>il programma torni a riproporre l'originaria sequenza di richieste 
>programmate. (fate prima a controllare facendo girare il programmino che 
>non a tentare di stare a seguire i miei tentativi di spiegare la cosa).
>Qualcuno di voi avrebbe la pazienza di dare un'occhiata al codice da me 
>scritto e suggerirmi una soluzione?

Puoi usare uno scherma di questo tipo:

menu = """
Scegli una delle seguenti opzioni
a: area del cerchio
r: raggio del cerchio
...
esci: uscita dal programma
"""

while True:
print(menu)
scelta = input("Scelta: ")
if scelta == "a":
# chiedi il valore di a e fai quello che serve
elif scelta == "r":
# chiedi il valore di r e fai quello che serve
elif scelta == "esci":
break
else:
print("Scelta errata")

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