Re: [Python] evvai! finalmente funziona!

2018-07-25 Per discussione Manlio Perillo
On Tue, Jul 24, 2018 at 1:08 PM laziale  wrote:
>
> ma se io volessi fare una calcolatrice, di quelle normali, cioè, non 
> scrivendo nel codice che operazione voglio fare, come devo fare?

Puoi leggere l'articolo di wikipedia dedicato alla notazione polacca inversa:
https://it.wikipedia.org/wiki/Notazione_polacca_inversa

Semplifica molto il codice, quindi per fare pratica ti conviene partire da qui.


Ciao
Manlio
___
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