Re: [Python] Fwd: pynput: help request.

2018-07-24 Per discussione Manlio Perillo
On Tue, Jul 24, 2018 at 12:03 PM Gabriele Battaglia  wrote:
>
> Ciao.
> Avevo chiesto, ad una comunità online di Python, un aiuto per capirci
> qualcosa di questa libreria, avrei voluto vedere un esempio di
> funzionamento.
> Posto qui il mio messaggio originale, se qualcuno ha uno script
> funzionante che la include, potrebbe inviarmelo, per favore?
>

pynput ha delle limitazioni abbastanza severe:
https://pynput.readthedocs.io/en/latest/limitations.html

Sono accettabili per te?
Nel tuo messaggio originale scrivi che il programma deve girare sia su
Win che MacOS.

Se il tuo script gira su terminale, esiste un implementazione senza
queste limitazioni.

Comunque se sei su Windows puoi usare pyunput o msvcrt.getwche per
implementare una bozza, e da questa chiedere consigli più dettagliati.

Da quello che leggo in
https://github.com/python/cpython/blob/master/Lib/getpass.py#L97,
getwch(e) ha il problema che non processa l'input e quindi devi
gestire il KeyboardInterrupt da te.  Ma usando SetConsoleMode
(https://docs.microsoft.com/en-us/windows/console/setconsolemode)
dovrebbe essere possibile implementare la lettura da console secondo
le tue necessità semplicemente resettando *solo* il flag
ENABLE_LINE_INPUT.

Su UNIX basta usare termios, ed anche qui dovrebbe bastare resettare
il flag ICANON, ed impostare VMIN = 1 e VTIME = 0.

Che cosa vuoi fare? Intercettare la pressione dei tasti da tastiera a
basso livello, o semplicemente leggere un carattere alla volta dalla
tastiera senza che l'utente premi INVIO?
pyunput credo che legga a basso livello.

> [...]

Ciao  Manlio
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Fwd: Re: evvai! finalmente funziona!

2018-07-24 Per discussione Gabriele Battaglia

Reply to the laziale's message, wrote on 24/07/2018 at 14:20:

scusa ma ho capito ben poco.

Ciao Gabriella.
Mi spiace. istruzione elif è la contrazione delle parole inglesi if ed 
else, che tradotte indicano "se" e "oppure".
Perdonami se non sono stato chiaro: tu hai chiesto come fare la 
calcolatrice ed io ti ho indicato il metodo che avrei seguito io. 
Naturalmente tale metodo include cose che non conosci, per il semplice 
fatto che non conosci Python, come io non ne conosco molte altre, più 
complesse. Le istruzioni sono spiegate nel manuale del linguaggio, nei 
libri ed in tutti i corsi base. Ritengo, ma correggetemi se sbaglio, che 
fare un corso base di Python vada al di là degli scopi della lista 
perciò, chiunque voglia imparare Python ha il dovere di informarsi, 
almeno sui concetti base.



io non programmo da chissà quanto, quindi certe cose non le so.
Ritengo, leggendo ciò che scrivi, che tu non abbia mai programmato. Ma 
tutti noi siamo partiti così. Dalla lista, dai forum e dagli amici si 
ricevono degli input, degli spunti, poi ritengo sia nostro compito 
quello di documentarsi e studiare.



se tu ti senti uno che non può spiegare le cose in modo molto facile perchè 
forse ti senti un genio o non so che, come ti ho detto in privato, lascia fare 
a luigi o chi per lui


Ancora una volta, chiedo perdono per non aver saputo spiegare le cose 
come desideravi, d'altra parte sono un novizio anch'io e faccio del mio 
meglio per essere d'aiuto. Tuttavia, come richiesto, eviterò di 
intralciare nuovamente la docenza di persone più qualificate. No, non mi 
sento un genio in nessuna delle discipline che conosco, tanto meno in 
questa, della quale posseggo solo una sottilissima infarinatura.


Ti faccio tanti auguri per il tuo percorso di apprendimento.

Ciao. GabryB.

--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Fwd: Re: evvai! finalmente funziona!

2018-07-24 Per discussione Gabriele Battaglia

Reply to the laziale's message, wrote on 24/07/2018 at 13:08:

ma se io volessi fare una calcolatrice, di quelle normali, cioè, non scrivendo 
nel codice che operazione voglio fare, come devo fare?

Di quelle normali che prevedono operazioni con un numero n di numeri, 
diversi segni, le parentesi eccetera, diventa un lavoro immane.
Se vuoi limitarti alle 4 operazioni, e solo fra 2 numeri, dopo aver 
chiesto il primo numero, devi chiedere di inserire un segno matematico, 
più, meno, per o diviso e darlo ad una variabile:


segno = input("Scegli fra + - * /")

Poi, con delle istruzioni if e elif, far compiere a Python l'operazione 
giusta, ad es:


if segn == "*":
print("Il risultato della moltiplicazione e': " x*y)

GabryB.

--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Fwd: Re: calcolatrice funzionante quasi del tutto

2018-07-24 Per discussione Gabriele Battaglia

Reply to the Marco De Paoli's message, wrote on 24/07/2018 at 12:50:

ciao Gabriella,

Il giorno 24 luglio 2018 12:42, laziale > ha scritto:


ciao.
ho programmato questa piccola calcolatrice, ma nel darmi il
risultato c'è una piccola sorpresa!


in effetti concatena i due parametri forniti dall'utente, invece di 
addizionarli


non so come sistemare la cosa.
qualcuno potrebbe aiutarmi?
ps. dovrebbe fare l'addizione


bisogna fare in modo trasformare in numero i dati che ricavi dall'utente

al posto di:

x = (input("scrivi il primo numero"))

prova con:

x = int(input("scrivi il primo numero"))

Giusto, dimenticavo che in Python 3, input riceve qualsiasi dato. Vengo 
dal 2 dove input riceveva solo numeri.
Perciò, Gabriella, ti serve int(...) che contenga input se vuoi numeri 
interi, o float(...) se vuoi numeri con virgola mobile.

GabryB.

--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Fwd: Re: calcolatrice funzionante quasi del tutto

2018-07-24 Per discussione Gabriele Battaglia

Reply to the laziale's message, wrote on 24/07/2018 at 14:09:

ciao gabry.
come input non va fra tonde?
luigi mi ha detto di si, comunque non era quello il problema, dato che l'ho 
risolto

Ciao Gabriella, Luigi e tutti.
No, a quanto ne so io: input è una istruzione e non va fra tonde, a meno 
che prima non ci sia un'altra funzione come int, o float, che la incapsula.

GabryB.


--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] evvai! finalmente funziona!

2018-07-24 Per discussione Gollum1
Il 24 luglio 2018 14:46:13 CEST, Gollum1  ha 
scritto:
>
>un semplice programmino, che fa quasi quello che vuoi, potrebbe essere
>un banale:
>
>a = input("espressione da valutare: ")
>print(eval(a))
>
>valuta l'espressione che tu gli hai messo, anche abbastanza complessa,
>con parentesi è tutto... 
>
>unico problema, non verifica la correttezza sintattica
>dell'espressione, prima di eseguirla, quindi in alcuni casi potrebbe
>darti un errore. 
>

un altro problema, nell'uso di questo codice, è che eval esegue qualsiasi cosa 
gli viene passata, quindi è una calcolatrice così fatta, ti esporrebbe a 
pericoli di code injection, cioè usare il tuo programma, per eseguire codice 
malevolo.

per questo che si preferisce sempre analizzare  in qualche modo la riga di 
input prima di valutarla. 
byez
-- 
gollum1

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


Re: [Python] evvai! finalmente funziona!

2018-07-24 Per discussione Gollum1
Il 24 luglio 2018 13:08:25 CEST, laziale  ha scritto:
>ma se io volessi fare una calcolatrice, di quelle normali, cioè, non
>scrivendo nel codice che operazione voglio fare, come devo fare?

non lo puoi fare, in qualche modo il tuo programma deve sapere cosa fare, 
quindi gli devi dare le istruzioni su input, di elaborazione e di output.

un semplice programmino, che fa quasi quello che vuoi, potrebbe essere un 
banale:

a = input("espressione da valutare: ")
print(eval(a))

valuta l'espressione che tu gli hai messo, anche abbastanza complessa, con 
parentesi è tutto... 

unico problema, non verifica la correttezza sintattica dell'espressione, prima 
di eseguirla, quindi in alcuni casi potrebbe darti un errore. 

se invece tu volessi costruirti una calcolatrice vera e propria, dovresti 
costruirti una funzione di parsing dell'espressione, e una funzione per ogni 
operazione che la tua calcolatrice deve essere in grado di elaborare. 

per semplificare l'elaborazione dovresti trasformare la tua espressione lineare 
in notazione polacca inversa (che è quello che fanno la maggior parte degli 
elaboratori). 

quindi, per fare una cosa relativamente semplice, come una calcolatrice (che in 
realtà semplice non è) devi studiarti un po' di cose... prima di tutto i 
fondamenti del linguaggio ti dei (ricorda che una delle caratteristiche di 
python è l'uso dell'identazione per identificare i blocchi logici), l'uso delle 
funzioni e dei cicli... e poi devi studiare gli argomenti inerenti al problema 
che vuoi risolvere, e ti assicuro, per esperienza, che quando cominci ad 
analizzare un problema, anche semplice, solitamente si scatenano tutta una 
serie di ulteriori problemi che devi risolvere, prima di vedere il compimento 
del tuo lavoro. 

l'importante è non farsi spaventare, e andare per gradi, con il cercare la 
soluzione ad un problema alla volta, riscrivendo senza paura anche parti che 
consideri già finite. 


byez
-- 
gollum1

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


Re: [Python] evvai! finalmente funziona!

2018-07-24 Per discussione laziale
cos'è questa cosa che dici di usare?
Messaggio originale:
Mittente: Jacopo Cascioli.
EMail mittente: jacopocasci...@gmail.com.
Data e ora: 24/07/2018, ore: 12:48.
Oggetto: Re: [Python] evvai! finalmente funziona!
Testo:
Dovresti leggere l'input, capire che tipo di operazione è, e poi eseguirla.
Molto banalmente, dato un input potresti fare split per trovare gli
operatori e usare for per calcolare:
 
> input_calcolatrice.split('+', '*', '/', '-')
 
Non ho partecipato alla discussione, ma ho letto che sei non vedente e sei
su windows. Hai provato ad usare un cloud IDE da browser?
 
Jacopo
 
Il giorno 24 luglio 2018 12:08, laziale  ha
scritto:
 
> ma se io volessi fare una calcolatrice, di quelle normali, cioè, non
> scrivendo nel codice che operazione voglio fare, come devo fare?
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
>

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


Re: [Python] evvai! finalmente funziona!

2018-07-24 Per discussione Jacopo Cascioli
Dovresti leggere l'input, capire che tipo di operazione è, e poi eseguirla.
Molto banalmente, dato un input potresti fare split per trovare gli
operatori e usare for per calcolare:

> input_calcolatrice.split('+', '*', '/', '-')

Non ho partecipato alla discussione, ma ho letto che sei non vedente e sei
su windows. Hai provato ad usare un cloud IDE da browser?

Jacopo

Il giorno 24 luglio 2018 12:08, laziale  ha
scritto:

> ma se io volessi fare una calcolatrice, di quelle normali, cioè, non
> scrivendo nel codice che operazione voglio fare, come devo fare?
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] evvai! finalmente funziona!

2018-07-24 Per discussione laziale
ma se io volessi fare una calcolatrice, di quelle normali, cioè, non scrivendo 
nel codice che operazione voglio fare, come devo fare?

calcolatrice.py
Description: Binary data
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] calcolatrice funzionante quasi del tutto

2018-07-24 Per discussione Marco De Paoli
ciao Gabriella,

Il giorno 24 luglio 2018 12:42, laziale  ha
scritto:

> ciao.
> ho programmato questa piccola calcolatrice, ma nel darmi il risultato c'è
> una piccola sorpresa!


in effetti concatena i due parametri forniti dall'utente, invece di
addizionarli


> non so come sistemare la cosa.
> qualcuno potrebbe aiutarmi?
> ps. dovrebbe fare l'addizione
>

bisogna fare in modo trasformare in numero i dati che ricavi dall'utente

al posto di:

x = (input("scrivi il primo numero"))

prova con:

x = int(input("scrivi il primo numero"))

Ora funziona?

bye bye,
Marco

... e se usi numeri con la virgola, funziona lo stesso bene? ;-)
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] calcolatrice funzionante quasi del tutto

2018-07-24 Per discussione laziale
ciao.
ho programmato questa piccola calcolatrice, ma nel darmi il risultato c'è una 
piccola sorpresa!
non so come sistemare la cosa.
qualcuno potrebbe aiutarmi?
ps. dovrebbe fare l'addizione

calcolatrice.py
Description: Binary data
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Fwd: pynput: help request.

2018-07-24 Per discussione Roberto Polli
Ciao G,

iiuc pynput è un framework event-driven.

  - associa delle callback all'input da tastiera
  - gestisce il resto dell'esecuzione

Qui trovi del codice github che lo usa https://github.com/search?q=pynput

Vedi di imparare da lì ;) putroppo non lo uso.

Pax
R:
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Fwd: pynput: help request.

2018-07-24 Per discussione Gabriele Battaglia

Ciao.
Avevo chiesto, ad una comunità online di Python, un aiuto per capirci 
qualcosa di questa libreria, avrei voluto vedere un esempio di 
funzionamento.
Posto qui il mio messaggio originale, se qualcuno ha uno script 
funzionante che la include, potrebbe inviarmelo, per favore?


Grazie in anticipo.

 Messaggio Inoltrato 
Oggetto: pynput: help request.
Data: Wed, 8 Nov 2017 15:25:06 +0100
Mittente: Gabriele Battaglia 
A: python...@freelists.org

Hello everybody.

I always wanted to know a way to read the input from keyboard, without 
stopping the main flow of the python script. input statement does that 
so it isnt worth for my puorpose.
It's hard to find something that works fine under Win, Mac and Linux as 
those O.S have different ways to dialogue with their keyboard.
I ended with a script which worked very well but now I'm migrating to 
Python 3.6 and I've discovered that it doesn't work any longer. So, I 
must find a different solution.
I tried Pygame module, which has a great control over the keyboard but 
it requires a video mode on. In this video mode I can send any text 
output to the console. So my scripts can't generate text, neither 
prompting something to the user. Pygame must be descarded for this reason.
Later I tried a module called keyboard 0.11.0 but I found it complex and 
I wasn't able to understand how it works.
And recently I landed on this library called pynput. This seems what I 
need to. It is compatible both for 2 and 3 python and cross platform. 
Moreover it controls both keyboard and mouse, if needed.


You may read its keyboard control module here:

https://pynput.readthedocs.io/en/latest/keyboard.html#monitoring-the-keyboard

The problem is that my knoledge in Python seems to be not enaugh to 
understand exactly how to use it in my scripts. The examples works but...

How do I start the keyboard Listener and how do I get the key pressed?

Is there someone available to help me, please?
This module will help a lot in a script: while you're waiting the user 
pressing a key, main program can continue running. And there is no need 
to press enter after giving a key command: the effect where immediate taken.


Thanks in advance.

Gabriele.

--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python