[Python] evvai! finalmente funziona!

Gollum1 gollum1.smeagol1 a gmail.com
Mar 24 Lug 2018 14:46:13 CEST


Il 24 luglio 2018 13:08:25 CEST, laziale <laziolazietta a winguido.it> 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. 


Maggiori informazioni sulla lista Python