Re: [Python] evvai! finalmente funziona!
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!
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!
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!
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!
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!
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