Re: [Python] Come fare il match di tutti i caratteri racchiusi tra /* e */?
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.
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
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 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
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 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 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 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
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)
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
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.
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
>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