ciao ragazzi.. volevo fare una calcolatrice in python.. potete aiutarmi???
passo passo.. non ho ancora molte competenze...
prima di tutto si importa il modulo math
import math *
input("inserisci il primo numero")
input(" inserisci il secondo numero")
risultato???
per non creare confusione.. volevo fare la calcolatrice solo con + e con - poi a piano a piano aggiungo le altre cose...
potete aiutarmi??
anche spiegandomi come si fa..
la cosa più ovvia che mi viene in mente è usare eval...
così non devi fare praticamente nulla.Anche se potrebbe portare dei problemi di sicurezza..
un utente potrebbe scrivere:
#!/usr/bin/python
def menu():
print "calcolatrice in python \n\n"
print "1) addizione"
print "2) sottrazione"
print "3) moltiplicazione"
print "4) divisione"
print "5) esci"
menu()
scelta = 0
while scelta != 5:
scelta = input("Inserisci un comando: ")
if scelta == 1:
print "Addizione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x + y
print "Il risultato dell'addizione e'",ris
raw_input("Premere invio per continuare")
print"\n"*300 # comando per pulire lo schermo
menu() # "ricarica" il menu
elif scelta == 2:
print "Sottrazione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x - y
print "Il risultato della sottrazione e'",ris
raw_input("Premere invio per continuare")
print"\n"*300
menu()
elif scelta == 3:
print "moltiplicazione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x * y
print "Il risultato della moltiplicazione e'",ris
raw_input("Premere invio per continuare")
print"\n"*300
menu()
elif scelta == 4:
print "divisione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x % y
ris2 = x / y
print "Il risultato della divisione e'",ris2
print "il resto e'",ris
raw_input("Premere invio per continuare")
print"\n"*300
menu()
elif scelta == 5:
raw_input("Premi invio per uscire")
Spero che il codice sia abbastanza chiaro se ci sono problemi domanda pure
Ultima modifica di calntiz il venerdì 4 dicembre 2009, 18:33, modificato 1 volta in totale.
quindi per rendere sicuro il programma devi evitare che un utente male intenzionato utilizzi il tuo programma, la calcolatrice, come mezzo per cancellare la tua home. se fai un controllo sull'input dell'utente eviti che si possa eseguire codice arbitrario.
quindi per rendere sicuro il programma devi evitare che un utente male intenzionato utilizzi il tuo programma, la calcolatrice, come mezzo per cancellare la tua home. se fai un controllo sull'input dell'utente eviti che si possa eseguire codice arbitrario.
#!/usr/bin/python
def menu():
print "calcolatrice in python \n\n"
print "1) addizione"
print "2) sottrazione"
print "3) moltiplicazione"
print "4) divisione"
print "5) esci"
menu()
scelta = 0
while scelta != 5:
scelta = input("Inserisci un comando: ")
if scelta == 1:
print "Addizione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x + y
print "Il risultato dell'addizione e'",ris
raw_input("Premere invio per continuare")
print"\n"*300 # comando per pulire lo schermo
menu() # "ricarica" il menu
elif scelta == 2:
print "Sottrazione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x - y
print "Il risultato della sottrazione e'",ris
raw_input("Premere invio per continuare")
print"\n"*300
menu()
elif scelta == 3:
print "moltiplicazione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x * y
print "Il risultato della moltiplicazione e'",ris
raw_input("Premere invio per continuare")
print"\n"*300
menu()
elif scelta == 4:
print "divisione"
x = input("Inserisci il primo numero: ")
y = input("inserisci il secondo numero: ")
ris = x % y
ris2 = x / y
print "Il risultato della divisione e'",ris2
print "il resto e'",ris
raw_input("Premere invio per continuare")
print"\n"*300
menu()
elif scelta == 5:
raw_input("Premi invio per uscire")
Spero che il codice sia abbastanza chiaro se ci sono problemi domanda pure
Grazie mille.. sei stato davvero molto comprensivo...
una domanda...
bhe eval pone un problema di sicurezza. e poi dipende come vuoi fare la calcolatrice
roxdragon ha scritto:
devo mettere per forza questo?
#!/usr/bin/python
in realtà se esegui i programmi sempre con "python nomefile.py" non è obbligatorio. lo diventa, se non sbaglio, quando gli dai i permessi di esecuzione, quando puoi eseguire lo script con "./nomefile.py"
Allora questa calcolatrice utilizza il while che serve a creare un ciclo finchè la condizione che viene impostata dal "programmatore" non si realizzi quindi il mio ciclo while terminerà quando premerò il numero 5 in questo caso.
Difatti nella parte di codice while != 5 qualsiasi operazione non sia 5 il programma la esegue...una calcolatrice può anche esser fatta con una serie di IF a cascata per intenderci...solo che puoi "eseguire" una sola volta una determinata operazione ( una sola addizione, una sola divisione e cosi via ) il while risolve questo "problema" grazie alla creazione di un ciclo.
Per la questione del def menu(): è una funzione che però in questo caso serve solo a mantenere il codice più pulito...ogni funzione termina con il richiamo del nome seguito dalla chiusura delle parentesi ( "menu ()" ) questo vale solo per queste funzioni cosi semplici.
>>> a = "5 + 4"
>>> op = a.split(" ")
>>> print op
['5', '+', '4']
se lo metti dentro un ciclo while o for come ha fatto calntiz hai la possibilità di fare + operazioni.
op[1] contiene l'operatore (+ nell'esempio sopra)
roxdragon ha scritto:
scusa ma di quanto hai fatto l'indentazione di def menu??
Il def menu(): l'ho utilizzato in questo caso per non riscrivere a meno in ogni blocco di if i print del menu(1) addizione 2) sottrazione)...in questo caso inserendo solo menu() richiama l'intera funzione e di conseguenza ristampa automaticamente tutti i print.