[PYTHON] Calcolatrice

Pubblicità

qwerty17

Utente Attivo
Messaggi
886
Reazioni
99
Punteggio
48
Ciao a tutti, ho creato l'altro giorno una semplice calcolatrice in python, con un label per la prima serie di numeri, un altro per l'operatore(+,-,/,x) e un altro per la seconda serie di numeri. Poi ho creato i vari bottoni dei numeri e un label dove dovrebbe comparire il risultato quando si preme il botton "uguale"...però il risultato non compare(inizialmente, quando usavo le stringvar non mi dava nessun errore, poi ho usato le intvar e mi dice che c'è un problema di segni).
Penso che il problema sia che python considera i numeri come stringhe e quindi non li fa sommare, sottrarre, ecc.
Come potrei risolvere questo problema?
questo è il codice:
Codice:
from tkinter import*
import math 

root=Tk()
root.title("Calcolatrice")

#crea il primo riquadro a sinistra
numeri=IntVar()
numeri_lab=Label(root, textvariable=numeri, bg="red")
numeri_lab.pack()
numeri_lab.place(x=1, y=1)
numeri.set("")



#crea il riquadro intermedio, dove andranno i segni(+,-,x,/)
operatore=StringVar()
operatore_lab=Label(root, textvariable=operatore)
operatore_lab.pack()
operatore_lab.place(x=100, y=1)

#crea il terzo riquadro a destra, per il secondo gruppo di numeri
numeri2=IntVar()
numeri2_lab=Label(root, textvariable=numeri2, bg="red")
numeri2_lab.pack()
numeri2_lab.place(x=150, y=1)
numeri2.set("")


#se il segno è presente significa che il primo numero è stato già scritto, quindi il numero verrà
#scritto nel terzo riquadro a destra, altrimenti verrà scritto nel primo riquadro
def digita_valori(x):
    if operatore_lab["text"]!="":
            numeri2.set(numeri2_lab["text"]+x)
    elif operatore_lab["text"]=="":
            numeri.set(numeri_lab["text"]+x)
 
        
#ogni bottone, quando viene premuto aggiunge il numero stesso che si trova sul bottone
#in uno dei riquadri

numeri_lab["text"]=""
def num_uno():
    digita_valori("1")
def num_due():
    digita_valori("2")
def num_tre():
    digita_valori("3")
def num_quattro():
    digita_valori("4")
def num_cinque():
    digita_valori("5")
def num_sei():
    digita_valori("6")
def num_sette():
    digita_valori("7")
def num_otto():
    digita_valori("8")
def num_nove():
    digita_valori("9")
#se lo zero è già presente come prima cifra non verrà digitata(per evitare 00050 ad es.)
def num_zero():
    if operatore_lab["text"]=="":
            if numeri_lab["text"]=="":
                    digita_valori("")
            else:
                    digita_valori("0")
    elif operatore_lab["text"]!="":
            if numeri2_lab["text"]=="":
                    digita_valori("")
            else:
                    digita_valori("0")
#se non c'è nessun numero la virgola non viene digitata(per evitare ,,,57 ad es.)
def num_virgola():
    if operatore_lab["text"]=="":
        if numeri_lab["text"]=="":
                digita_valori("")
        else:
                digita_valori(",")
    elif operatore_lab["text"]!="":            
        if numeri2_lab["text"]=="":
                digita_valori("")
        else:
                digita_valori(",")

#cancella tutto ciò che è scritto nei 3 riquadri
def canc():
    numeri.set("")
    numeri2.set("")
    operatore.set("")

#fa comparire i segni nel riquadro intermedio(se il primo riquadro è vuoto
#significa che non c'è nessun numero e quindi il segno non viene immesso)
def per():
    if numeri_lab["text"]=="":
        operatore.set("")
    else:
        operatore.set("X")
def diviso():
    if numeri_lab["text"]=="":
        operatore.set("")
    else:
        operatore.set("/")
def più():
    if numeri_lab["text"]=="":
        operatore.set("")
    else:
        operatore.set("+")
def meno():
    if numeri_lab["text"]=="":
        operatore.set("")
    else:
        operatore.set("-")

#label rosso dove dovrebbero comparire i risultati.Dovrebbero.
ris_lab=Label(root, bg="red")
ris_lab.pack()
ris_lab.place(x=1, y=230)
ris_lab["width"]=30

#per calcolare le addizioni, le sottrazioni, le moltiplicazioni e le divisioni 
#le fa comparire nel riquadro rosso in basso ai numeri, ma non funziona
def risultato():
        if operatore_lab["text"]=="+":
                ris_lab["text"]==numeri+numeri2
        elif operatore_lab["text"]=="-":
                ris_lab["text"]==numeri-numeri2
        elif operatore_lab["text"]=="X":
                ris_lab["text"]==numeri*numeri2
        elif operatore_lab["text"]=="/":
                ris_lab["text"]==numeri/numeri2
                
        
#Bottoni dei numeri

uno=Button(root, text="1", fg="red", font=("helvetica", 12),command=num_uno)
uno.pack()
uno.place(x=10, y=130)
uno["width"]=3

due=Button(root, text="2", fg="red", font=("helvetica", 12),command=num_due)
due.pack()
due.place(x=60, y=130)
due["width"]=3

tre=Button(root, text="3", fg="red", font=("helvetica", 12),command=num_tre)
tre.pack()
tre.place(x=110, y=130)
tre["width"]=3

quattro=Button(root, text="4", fg="red", font=("helvetica", 12),command=num_quattro)
quattro.pack()
quattro.place(x=10, y=80)
quattro["width"]=3

cinque=Button(root, text="5", fg="red", font=("helvetica", 12),command=num_cinque)
cinque.pack()
cinque.place(x=60, y=80)
cinque["width"]=3

sei=Button(root, text="6", fg="red", font=("helvetica", 12),command=num_sei)
sei.pack()
sei.place(x=110, y=80)
sei["width"]=3

sette=Button(root, text="7", fg="red", font=("helvetica", 12), command=num_sette)
sette.pack()
sette.place(x=10, y=30)
sette["width"]=3

otto=Button(root, text="8", fg="red", font=("helvetica", 12), command=num_otto)
otto.pack()
otto.place(x=60, y=30)
otto["width"]=3

nove=Button(root, text="9", fg="red", font=("helvetica", 12),command=num_nove)
nove.pack()
nove.place(x=110, y=30)
nove["width"]=3


zero=Button(root, text="0", fg="red", font=("helvetica", 12), command=num_zero)
zero.pack()
zero.place(x=10, y=180)
zero["width"]=5

#Bottoni speciali

virgola=Button(root, text=",", fg="red", font=("helvetica", 12), command=num_virgola)
virgola.pack()
virgola.place(x=80, y=180)
virgola["width"]=3

cancella=Button(root, text="C", fg="blue", font=("helvetica", 12), command=canc)
cancella.pack()
cancella.place(x=200, y=130)
cancella["width"]=2

#Bottoni delle operazioni

x=Button(root, text="X", fg="blue", font=("helvetica", 12),command=per)
x.pack()
x.place(x=160, y=30)
x["width"]=2

diviso=Button(root, text="/", fg="blue", font=("helvetica", 12),command=diviso)
diviso.pack()
diviso.place(x=200, y=30)
diviso["width"]=2

più=Button(root, text="+", fg="blue", font=("helvetica", 12),command=più)
più.pack()
più.place(x=160, y=80)
più["width"]=2

meno=Button(root, text="-", fg="blue", font=("helvetica", 12, "bold"),command=meno)
meno.pack()
meno.place(x=200, y=80)
meno["width"]=2

uguale=Button(root, text="=", fg="blue", font=("helvetica", 12), command=risultato)
uguale.pack()
uguale.place(x=160, y=130)
uguale["width"]=2

root.mainloop()

grazie a tutti coloro che mi risponderanno!
 
Ciao! Ti dico subito che sono una capra :asd: quindi se quanto segue è uno scempio abbi pazienza e prendilo come "up"...


Penso che il problema sia che python considera i numeri come stringhe ...cut...

Questo è vero, ma solo nel momento in cui dai il comando "print". Nel frattempo sono numeri (int, long, float o complex che sia). Anzi se avvio python su terminale sia che dia

Codice:
2+2

sia che dia
Codice:
print 2+2

il risultato a video è
Codice:
 4

La somma di un numero con una stringa viene visto come errore, es:
Codice:
2+'3'

ma si può ovviare con:
Codice:
2+int('3')

tanto per copiare gli esempi che mi sono visto io :asd:

Quindi anche se sono ben lontano dal fare un accrocchio come il tuo forse c'è questa piccola cosa da rivedere che magari incasina tutto il lavoro. O magari non ho capito un'emerita ceppa...
 
C'erano due errori nella funzione risultato: cercavi di fare un assegnamento usando "==" al posto di "=" e cercavi di fare le operazioni tra due oggetti IntVar, invece che tra i numeri memorizzati negli oggetti, ricavabili usando il metodo get(). Il codice funzionante è questo:

Codice:
def risultato():
         if operatore_lab["text"]=="+":
                    ris_lab["text"]=numeri.get()+numeri2.get()
         elif operatore_lab["text"]=="-":
                    ris_lab["text"]=numeri.get()-numeri2.get()
         elif operatore_lab["text"]=="X":
                    ris_lab["text"]=numeri.get()*numeri2.get()
         elif operatore_lab["text"]=="/":
                    ris_lab["text"]=numeri.get()/numeri2.get()

Ciao :)
 
Ringrazio tutti e due per la risposta! Finalmente sono riuscito a risolvere questo problema...in realtà avevo già provato a usare numeri.get(), ma non me lo accettava perchè usavo ==(ogni tanto faccio confusione con = e== :D).
Grazie mille! Stavo diventando matto!
 
Consiglio di effettuare il cast in un blocco Try - Catch di modo da poter intercettare eventuali exception :)
 
Ho modificato la calcolatrice aggiungendo altre label per fare il quadrato e il cubo dei numeri(è diventata bella complicata a livello di lettura :D) e ho aggiunto un menù con delle funzioni(che ancora devo aggiungere)...
Il problema è che uso le IntVar, quindi non posso fare calcoli con la virgola...ho provato a fare nella definizione risultato float(numeri.get())+float(numeri2.get()) , ma non funziona...(OT=ho notato che se metto il sottolineato poi non me lo toglie più!)
Questo è il codice:
Codice:
from tkinter import*
import math 

root=Tk()
root.title("Calcolatrice")
root.geometry("%dx%d+%d+%d" % (250, 380, 100, 100))          #width, height. posizionex, posizioney


#menù
menu=Menu(root)
mfile=Menu(menu, tearoff=0)
menu.add_cascade(label="File", menu=mfile)
mfile.add_command(label="Esci", command=root.destroy)



mstrumenti=Menu(menu, tearoff=0)
menu.add_cascade(label="Strumenti", menu=mstrumenti)
mstrumenti.add_command(label="Opzioni")


mhelp=Menu(menu, tearoff=0)
menu.add_cascade(label="Help", menu=mhelp)
mhelp.add_command(label="Guida")


#crea il primo riquadro a sinistra
numeri=IntVar()
numeri_lab=Label(root, textvariable=numeri, font=("helvetica", 30))
numeri_lab.pack()
numeri_lab.place(x=2, y=1)
numeri.set("")



#crea il riquadro intermedio, dove andranno i segni(+,-,x,/)
operatore=StringVar()
operatore_lab=Label(root, textvariable=operatore, font=("helvetica", 30))
operatore_lab.pack()
operatore_lab.place(x=200, y=1)

#crea il riquadro dove andrà "^2" prima del segno
operatore3=StringVar()
operatore3_lab=Label(root, textvariable=operatore3, font=("helvetica", 30))
operatore3_lab.pack()
operatore3_lab.place(x=150, y=1)

#crea il terzo riquadro a destra, per il secondo gruppo di numeri
numeri2=IntVar()
numeri2_lab=Label(root, textvariable=numeri2, font=("helvetica", 30))
numeri2_lab.pack()
numeri2_lab.place(x=2, y=75)
numeri2.set("")

#crea un altro riquadro operatore per le potenze
operatore2=StringVar()
operatore2_lab=Label(root, textvariable=operatore2, font=("helvetica", 30))
operatore2_lab.pack()
operatore2_lab.place(x=150, y=75)

#label dove compaiono i risultati
ris_lab=Label(root, font=("helvetica", 20))
ris_lab.pack()
ris_lab.place(x=1, y=330)




#se il segno è presente significa che il primo numero è stato già scritto, quindi il numero verrà
#scritto nel terzo riquadro a destra, altrimenti verrà scritto nel primo riquadro
def digita_valori(x):
    if operatore_lab["text"]!="":
            numeri2.set(numeri2_lab["text"]+x)
    elif operatore_lab["text"]=="":
            numeri.set(numeri_lab["text"]+x)
    
 
        
#ogni bottone, quando viene premuto aggiunge il numero stesso che si trova sul bottone
#in uno dei riquadri, se già si è premuto uguale il numero non può essere aggiunto
#a quello già presente

numeri_lab["text"]=""
def num_uno():
    if ris_lab["text"]=="":
        digita_valori("1")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_due():
    if ris_lab["text"]=="":
        digita_valori("2")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_tre():
    if ris_lab["text"]=="":
        digita_valori("3")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_quattro():
    if ris_lab["text"]=="":
        digita_valori("4")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_cinque():
    if ris_lab["text"]=="":
        digita_valori("5")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_sei():
    if ris_lab["text"]=="":
        digita_valori("6")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_sette():
    if ris_lab["text"]=="":
        digita_valori("7")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_otto():
    if ris_lab["text"]=="":
        digita_valori("8")
    elif ris_lab["text"]!="":
        digita_valori("")
def num_nove():
    if ris_lab["text"]=="":
        digita_valori("9")
    elif ris_lab["text"]!="":
        digita_valori("")
#se lo zero è già presente come prima cifra non verrà digitata(per evitare 00050 ad es.)
def num_zero():
    if ris_lab["text"]=="":
        if operatore_lab["text"]=="":
            if numeri_lab["text"]=="":
                    digita_valori("")
            else:
                    digita_valori("0")
        elif operatore_lab["text"]!="":
            if numeri2_lab["text"]=="":
                    digita_valori("")
            else:
                    digita_valori("0")
    elif ris_lab["text"]!="":
        digita_valori("")
   
#se non c'è nessun numero la virgola non viene digitata(per evitare ,,,57 ad es.)
def num_virgola():
     if ris_lab["text"]=="":
        if operatore_lab["text"]=="":
             if numeri_lab["text"]=="":
                digita_valori("")
             else:
                digita_valori(",")
        elif operatore_lab["text"]!="":            
             if numeri2_lab["text"]=="":
                digita_valori("")
             else:
                digita_valori(",")
     elif ris_lab["text"]!="":
        digita_valori("")
    

#cancella tutto ciò che è scritto nei 3 riquadri
def canc():
    numeri.set("")
    numeri2.set("")
    operatore.set("")
    operatore2.set("")
    operatore3.set("")
    ris_lab["text"]=("")
    

#fa comparire i segni nel riquadro intermedio(se il primo riquadro è vuoto
#significa che non c'è nessun numero e quindi il segno non viene immesso)
def per():
    if numeri_lab["text"]=="":
        operatore.set("")
        operatore2.set("")
    elif numeri_lab["text"]!="":
        if numeri2_lab["text"]=="":
            operatore2.set("")
            operatore.set("X")
        elif numeri2_lab["text"]!="":
            operatore2.set("")
def diviso():
    if numeri_lab["text"]=="":
        operatore.set("")
        operatore2.set("")
    elif numeri_lab["text"]!="":
        if numeri2_lab["text"]=="":
            operatore2.set("")
            operatore.set("/")
        elif numeri2_lab["text"]!="":
            operatore2.set("")
def più():
    if numeri_lab["text"]=="":
        operatore.set("")
        operatore2.set("")
    elif numeri_lab["text"]!="":
        if numeri2_lab["text"]=="":
            operatore2.set("")
            operatore.set("+")
        elif numeri2_lab["text"]!="":
            operatore2.set("")  
def meno():
    if numeri_lab["text"]=="":
        operatore.set("")
        operatore2.set("")
    elif numeri_lab["text"]!="":
        if numeri2_lab["text"]=="":
            operatore2.set("")
            operatore.set("-")
        elif numeri2_lab["text"]!="":
            operatore2.set("")
def quadrato():
    if ris_lab["text"]=="":
        if numeri_lab["text"]=="":
            operatore3.set("")
        elif numeri_lab["text"]!="":
            if numeri2_lab["text"]=="":
                operatore3.set("^2")
            elif numeri2_lab["text"]!="":
                operatore2.set("^2")
    elif ris_lab["text"]!="":
        pass
def cubo():
    if ris_lab["text"]=="":
        if numeri_lab["text"]=="":
            operatore3.set("")
        elif numeri_lab["text"]!="":
            if numeri2_lab["text"]=="":
                operatore3.set("^3")
            elif numeri2_lab["text"]!="":
                operatore2.set("^3")
    elif ris_lab["text"]!="":
        pass
        

#per calcolare le addizioni, le sottrazioni, le moltiplicazioni e le divisioni 
#le fa comparire nel riquadro rosso in basso ai numeri
def risultato():
         if operatore3_lab["text"]=="^2":
             if operatore2_lab["text"]=="":
                 if operatore_lab["text"]=="+":
                     ris_lab["text"]=numeri.get()**2+numeri2.get()
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()**2-numeri2.get()
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()**2*numeri2.get()
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()**2/numeri2.get()
                 elif operatore_lab["text"]=="":
                     ris_lab["text"]=numeri.get()**2
             elif operatore2_lab["text"]=="^2":
                 if operatore_lab["text"]=="+" :
                     ris_lab["text"]=numeri.get()**2+numeri2.get()**2
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()**2-numeri2.get()**2
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()**2*numeri2.get()**2
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()**2/numeri2.get()**2
             elif operatore2_lab["text"]=="^3":
                 if operatore_lab["text"]=="+":
                     ris_lab["text"]=numeri.get()**2+numeri2.get()**3
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()**2-numeri2.get()**3
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()**2*numeri2.get()**3
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()**2/numeri2.get()**3
         elif operatore3_lab["text"]=="":
             if operatore2_lab["text"]=="^2":
                 if operatore_lab["text"]=="+":
                     ris_lab["text"]=numeri.get()+numeri2.get()**2
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()-numeri2.get()**2
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()*numeri2.get()**2
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()/numeri2.get()**2
             elif operatore2_lab["text"]=="":
                 if operatore_lab["text"]=="+":
                     ris_lab["text"]=numeri.get()+numeri2.get()
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()-numeri2.get()
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()*numeri2.get()
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()/numeri2.get()
             elif operatore2_lab["text"]=="^3":
                 if operatore_lab["text"]=="+":
                     ris_lab["text"]=numeri.get()+numeri2.get()**3
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()-numeri2.get()**3
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()*numeri2.get()**3
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()/numeri2.get()**3
         elif operatore3_lab["text"]=="^3":
             if operatore2_lab["text"]=="":
                 if operatore_lab["text"]=="+":
                     ris_lab["text"]=numeri.get()**3+numeri2.get()
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()**3-numeri2.get()
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()**3*numeri2.get()
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()**3/numeri2.get()
                 elif operatore_lab["text"]=="":
                     ris_lab["text"]=numeri.get()**3
             elif operatore2_lab["text"]=="^3":
                 if operatore_lab["text"]=="+" :
                     ris_lab["text"]=numeri.get()**3+numeri2.get()**3
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()**3-numeri2.get()**3
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()**3*numeri2.get()**3
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()**3/numeri2.get()**3
             elif operatore2_lab["text"]=="^2":
                 if operatore_lab["text"]=="+":
                     ris_lab["text"]=numeri.get()**3+numeri2.get()**2
                 elif operatore_lab["text"]=="-":
                     ris_lab["text"]=numeri.get()**3-numeri2.get()**2
                 elif operatore_lab["text"]=="X":
                     ris_lab["text"]=numeri.get()**3*numeri2.get()**2
                 elif operatore_lab["text"]=="/":
                     ris_lab["text"]=numeri.get()**3/numeri2.get()**2
             
                 
                
        
#Bottoni dei numeri

uno=Button(root, text="1", fg="red", font=("helvetica", 12),command=num_uno)
uno.pack()
uno.place(x=10, y=230)
uno["width"]=3


due=Button(root, text="2", fg="red", font=("helvetica", 12),command=num_due)
due.pack()
due.place(x=60, y=230)
due["width"]=3

tre=Button(root, text="3", fg="red", font=("helvetica", 12),command=num_tre)
tre.pack()
tre.place(x=110, y=230)
tre["width"]=3

quattro=Button(root, text="4", fg="red", font=("helvetica", 12),command=num_quattro)
quattro.pack()
quattro.place(x=10, y=180)
quattro["width"]=3

cinque=Button(root, text="5", fg="red", font=("helvetica", 12),command=num_cinque)
cinque.pack()
cinque.place(x=60, y=180)
cinque["width"]=3

sei=Button(root, text="6", fg="red", font=("helvetica", 12),command=num_sei)
sei.pack()
sei.place(x=110, y=180)
sei["width"]=3

sette=Button(root, text="7", fg="red", font=("helvetica", 12), command=num_sette)
sette.pack()
sette.place(x=10, y=130)
sette["width"]=3

otto=Button(root, text="8", fg="red", font=("helvetica", 12), command=num_otto)
otto.pack()
otto.place(x=60, y=130)
otto["width"]=3

nove=Button(root, text="9", fg="red", font=("helvetica", 12),command=num_nove)
nove.pack()
nove.place(x=110, y=130)
nove["width"]=3


zero=Button(root, text="0", fg="red", font=("helvetica", 12), command=num_zero)
zero.pack()
zero.place(x=10, y=280)
zero["width"]=5

#Bottoni speciali

virgola=Button(root, text=",", fg="red", font=("helvetica", 12), command=num_virgola)
virgola.pack()
virgola.place(x=80, y=280)
virgola["width"]=3

cancella=Button(root, text="C", fg="blue", font=("helvetica", 12), command=canc)
cancella.pack()
cancella.place(x=200, y=280)
cancella["width"]=2

#Bottoni delle operazioni

x=Button(root, text="X", fg="blue", font=("helvetica", 12),command=per)
x.pack()
x.place(x=160, y=130)
x["width"]=2

diviso=Button(root, text="/", fg="blue", font=("helvetica", 12),command=diviso)
diviso.pack()
diviso.place(x=200, y=130)
diviso["width"]=2

più=Button(root, text="+", fg="blue", font=("helvetica", 12),command=più)
più.pack()
più.place(x=160, y=180)
più["width"]=2

meno=Button(root, text="-", fg="blue", font=("helvetica", 12, "bold"),command=meno)
meno.pack()
meno.place(x=200, y=180)
meno["width"]=2

uguale=Button(root, text="=", fg="blue", font=("helvetica", 12), command=risultato)
uguale.pack()
uguale.place(x=160, y=280)
uguale["width"]=2

quadrato=Button(root, text="^2", fg="blue", font=("helvetica", 12), command=quadrato)
quadrato.pack()
quadrato.place(x=160, y=230)
quadrato["width"]=2

cubo=Button(root, text="^3", fg="blue", font=("helvetica", 12), command=cubo)
cubo.pack()
cubo.place(x=200, y=230)
cubo["width"]=2

root.config(menu=menu)
root.mainloop()


Come posso risolvere?

 
Ultima modifica:
Ho risolto: ho sostituito le intvar con le stringvar e per ottenere il risultato decimale ho usato
float(numeri.get())+float(numeri2.get())
 
Pubblicità
Pubblicità
Indietro
Top