Проблема при выводе результата

280 просмотра
0
0 Комментариев

Калькулятор на Python 3. Когда сначала сначала суммируешь 2 числа, а потом отнимаешь, получается всякая дичь. Как это исправить? Если не поняли проблему, вот код, запустите, и все поймете:

from tkinter import *
from tkinter.messagebox import *
import math
 
def showSum():
    Ans1 = int(num1.get()) + int(num2.get())
    str_ans1 = str(Ans1)
    blank.delete(0,len(str_ans1))
    blank.insert(0, Ans1)
def showSubs():
    Ans2 = int(num1.get()) - int(num2.get())
    str_ans2 = str(Ans2)
    blank.delete(0, len(str_ans2))
    blank.insert(0, Ans2)
def showMult():
    Ans3 = int(num1.get()) * int(num2.get())
    str_ans3 = str(Ans3)
    blank.delete(0, len(str_ans3))
    blank.insert(0, Ans3)
def showDiv():
    Ans4 = int(num1.get()) / int(num2.get())
    str_ans4 = str(Ans4)
    blank.delete(0, len(str_ans4))
    blank.insert(0, Ans4)
def sq():
    Ans5 = int(num1.get())**2
    str_ans5 = str(Ans5)
    blank.delete(0, len(str_ans5))
    blank.insert(0, Ans5)
def cube():
    Ans6 = int(num1.get())**3
    str_ans6 = str(Ans6)
    blank.delete(0, len(str_ans6))
    blank.insert(0, Ans6)
 
main = Tk()
Label(main, text = "Enter Num 1:").grid(row=0)
Label(main, text = "Enter Num 2:").grid(row=1)
Label(main, text = "The answer is:").grid(row=2)
 
 
 
num1 = Entry(main)
num2 = Entry(main)
blank = Entry(main)
 
 
num1.grid(row=0, column=1)
num2.grid(row=1, column=1)
blank.grid(row=2, column=1)
 
 
Button(main, text='Quit', command=main.destroy).grid(row=11, column=0, sticky=W, pady=4)
Button(main, text='Sum', command=showSum).grid(row=5, column=0, sticky=W, pady=4)
Button(main, text = 'Substraction', command=showSubs).grid(row=6, column=0, sticky=W, pady=4)
Button(main, text = 'Multiplying', command = showMult).grid(row=7, column = 0, sticky = W, pady = 4)
Button(main, text = 'Dividing', command = showDiv).grid(row=8, column=0, sticky = W, pady = 4)
Button(main, text = 'Square', command = sq).grid(row=9, column=0, sticky = W, pady = 4)
Button(main, text = 'Cube', command = cube).grid(row = 10, column = 0, sticky = W, pady = 4 )
 
 
main.mainloop()


Добавить комментарий

1 Ответы

Python Опубликовано 14.12.2018
0

Так как длина ответа у вас может отличаться стоит просто удалять все значение в этом поле при помощи blank.delete(0, END)

from tkinter import *
import math
 
 
def showSum():
    Ans1 = int(num1.get()) + int(num2.get())
    blank.delete(0, END)
    blank.insert(0, Ans1)
 
 
def showSubs():
    Ans2 = int(num1.get()) - int(num2.get())
    blank.delete(0, END)
    blank.insert(0, Ans2)
 
 
def showMult():
    Ans3 = int(num1.get()) * int(num2.get())
    blank.delete(0, END)
    blank.insert(0, Ans3)
 
def showDiv():
    Ans4 = int(num1.get()) / int(num2.get())
    blank.delete(0, END)
    blank.insert(0, Ans4)
 
 
def sq():
    Ans5 = int(num1.get())**2
    blank.delete(0, END)
    blank.insert(0, Ans5)
 
 
def cube():
    Ans6 = int(num1.get())**3
    blank.delete(0, END)
    blank.insert(0, Ans6)
 
 
main = Tk()
Label(main, text="Enter Num 1:").grid(row=0)
Label(main, text="Enter Num 2:").grid(row=1)
Label(main, text="The answer is:").grid(row=2)
 
num1 = Entry(main)
num2 = Entry(main)
blank = Entry(main)
 
num1.grid(row=0, column=1)
num2.grid(row=1, column=1)
blank.grid(row=2, column=1)
 
Button(main, text='Quit', command=main.destroy).grid(row=11, column=0, sticky=W, pady=4)
Button(main, text='Sum', command=showSum).grid(row=5, column=0, sticky=W, pady=4)
Button(main, text='Substraction', command=showSubs).grid(row=6, column=0, sticky=W, pady=4)
Button(main, text='Multiplying', command=showMult).grid(row=7, column=0, sticky=W, pady=4)
Button(main, text='Dividing', command=showDiv).grid(row=8, column=0, sticky=W, pady=4)
Button(main, text='Square', command=sq).grid(row=9, column=0, sticky=W, pady=4)
Button(main, text='Cube', command=cube).grid(row=10, column=0, sticky=W, pady=4)
 
 
main.mainloop()

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up