我有这个图形用户界面计算器工作两个数字,现在我想添加第三个数字。我用加法运算,然后用乘法运算。。然后加上许多数字,然后在加法或乘法之后进行减法/除法。现在,如果我试图让它变得更复杂一点,我会感到困惑,因为我可能设置错了。在
逻辑是这样的: 6*6-1(windows上的计算器不执行操作顺序) 但在我的剧本里
6首先存储为evar。在
然后,multiply
函数由*按钮调用。在
multiply
函数将evar附加到名为FirstNumber的列表中。在
第二个evar现在存储在evar中。在
divide
函数由/按钮调用。在
divide
中的逻辑是将evar设置为FirstNumber。在
第二个六是第一个数。在
但是,由于firstNumber是一个列表,所以这两个值的和是12。不过,我希望是36岁。 如果我现在在计算器上减去1,我希望它是35,但逻辑上应该是11。在
列表不知道数字之间有什么操作数,有人能告诉我一个方法吗?在
import sys
import os
from tkinter import *
from operator import mul
class Calculator():
def __init__(self):
self.root = Tk()
self.root.title("Calculator")
self.frame1 = Frame(self.root)
self.frame2 = Frame(self.root)
self.frame3 = Frame(self.root)
self.frame4 = Frame(self.root)
self.frame5 = Frame(self.root)
self.frame1.pack(side=TOP)
self.frame2.pack(side=TOP)
self.frame3.pack(side=TOP)
self.frame4.pack(side=TOP)
self.frame5.pack(side=TOP)
self.evar = StringVar()
self.evar.trace("w", self.callback)
self.ent = Entry(self.frame1, textvariable = self.evar).pack(side=LEFT, padx = 10, pady= 10)
self.button7 = Button(self.frame2, text="7", bg="white", fg="black", bd=20, command=lambda : self.append_button(7))
self.button7.pack(side=LEFT)
self.button8 = Button(self.frame2, text="8", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(8))
self.button8.pack(side=LEFT)
self.button9 = Button(self.frame2, text = "9", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(9))
self.button9.pack(side=LEFT)
self.Divbutton = Button(self.frame2, text = "/", bg="white", bd=20, fg="black", relief="raised", command= self.divide)
self.Divbutton.pack(side=LEFT)
self.button4 = Button(self.frame3, text="4", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(4))
self.button4.pack(side=LEFT)
self.button5 = Button(self.frame3, text="5", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(5))
self.button5.pack(side=LEFT)
self.button6 = Button(self.frame3, text = "6", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(6))
self.button6.pack(side=LEFT)
self.MultiplyButton = Button(self.frame3, text = "*", bg="white", bd=20, fg="black", relief="raised", command = self.multiply).pack(side=LEFT)
self.button1 = Button(self.frame4, text="1", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(1))
self.button1.pack(side=LEFT)
self.button2 = Button(self.frame4, text="2", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(2))
self.button2.pack(side=LEFT)
self.button3 = Button(self.frame4, text = "3", bg="white", bd=20, fg="black", relief="raised", command=lambda : self.append_button(3))
self.button3.pack(side=LEFT)
self.SubtractButton = Button(self.frame4, text = "-", bg="white", bd=20, fg="black", relief="raised", command = self.subtract).pack(side=LEFT)
self.button0 = Button(self.frame5, text = "0", bg="white", bd=20).pack(side=LEFT)
self.Clear = Button(self.frame5, text = "C", bg="white", fg="black", bd=20, command = self.clear).pack(side=LEFT)
self.AddButton = Button(self.frame5, text = "+", bg="white", bd=20, command = self.add).pack(side=LEFT)
self.EqualsButton = Button(self.frame5, text ="=", bg="white", bd=20, command = self.equals_button)
self.EqualsButton.pack(side=LEFT)
self.button = ""
self.total = 0
self.firstNumber = []
self.operand = ""
self.root.mainloop
self.count = 0
self.multiplyValue = 0
def clear(self):
self.evar.set("")
self.firstNumber = []
return self.firstNumber
def callback(self, *args):
print("Entry now %s" % self.evar.get())
def add(self):
self.firstNumber.append(int(self.evar.get()))
self.evar.set("")
self.operand = "+"
def subtract(self):
self.firstNumber.append(int(self.evar.get()))
self.evar.set("")
self.operand = "-"
def multiply(self):
self.firstNumber.append(int(self.evar.get()))
self.evar.set("")
self.operand = "*"
def divide(self):
self.firstNumber.append(int(self.evar.get()))
self.evar.set("")
self.operand = "/"
def create_button(self):
buttons = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
def append_button(self, val):
self.evar.set(self.evar.get() + str(val))
#when equals is presssed, perform a calculation based on the operand
def equals_button(self):
if self.operand == "+":
self.firstNumber.append(int(self.evar.get()))
result = sum(self.firstNumber)
elif self.operand == "-":
result = sum(self.firstNumber) - int(self.evar.get())
elif self.operand == "*":
self.multiplyValue = 1
for x in self.firstNumber:
self.multiplyValue *= x
result = self.multiplyValue * int(self.evar.get())
elif self.operand == "/":
result = sum(self.firstNumber) / int(self.evar.get())
self.evar.set(result)
Calc = Calculator()
目前没有回答
相关问题 更多 >
编程相关推荐