设计内容:
设计一个简单计算器
设计要求:
实现简单计算器功能,包括两个数的加、减、乘、除和求幂运算。设计一个计算器界面
from tkinter import *
"""
导入tkinterGUI做一个简单的计算器界面
"""
win = Tk()
btn1 = Button(text = "1")
btn2 = Button(text = "2")
btn3 = Button(text = "3")
btn4 = Button(text = "4")
btn5 = Button(text = "5")
btn6 = Button(text = "6")
btn7 = Button(text = "7")
btn8 = Button(text = "8")
btn9 = Button(text = "9")
btn0 = Button(text = "0")
bt_add = Button(text = "+")
bt_sub = Button(text = "-")
bt_mul = Button(text = "*")
bt_div = Button(text = "/")
bt_fac = Button(text = "**")
bt_equ = Button(text = "=")
bt_point = Button(text = ".")
btn0.config(width = 3,height = 2)
btn1.config(width = 3,height = 2)
btn2.config(width = 3,height = 2)
btn3.config(width = 3,height = 2)
btn4.config(width = 3,height = 2)
btn5.config(width = 3,height = 2)
btn6.config(width = 3,height = 2)
btn7.config(width = 3,height = 2)
btn8.config(width = 3,height = 2)
btn9.config(width = 3,height = 2)
bt_equ.config(width = 3,height = 2)
bt_fac.config(width = 3,height = 2)
bt_mul.config(width = 3,height = 2)
bt_sub.config(width = 3,height = 2)
bt_add.config(width = 3,height = 2)
bt_point.config(width = 3,height = 2)
bt_div.config(width = 3,height = 2)
btn1.grid(row = 1,column = 0,padx = 2)
btn2.grid(row = 1,column = 1,padx = 2)
btn3.grid(row = 1,column = 2,padx = 2)
bt_add.grid(row = 1,column = 3,padx = 2)
btn4.grid(row = 2,column = 0,padx = 2)
btn5.grid(row = 2,column = 1,padx = 2)
btn6.grid(row = 2,column = 2,padx = 2)
bt_sub.grid(row = 2,column = 3,padx = 2)
btn7.grid(row = 3,column = 0,padx = 2)
btn8.grid(row = 3,column = 1,padx = 2)
btn9.grid(row = 3,column = 2,padx = 2)
bt_mul.grid(row = 3,column = 3,padx = 2)
btn0.grid(row = 4,column = 0,padx = 2)
bt_fac.grid(row = 4,column = 1,padx = 2)
bt_point.grid(row = 4,column = 2,padx = 2)
bt_equ.grid(row = 4,column = 3,padx = 2)
label1 = Label(win,text="计算结果为:", fg = "green")
label1.grid(row = 6,column = 1, columnspan =4)
label1.config(font = ('宋体', 12))
label2 = Label(win,text="", fg = "green")
label2.grid(row = 8,column = 1, columnspan =4)
label2.config(font = ('宋体', 12))
dig1_list = []
dig2_list = []
dig_anser = []
def dig_0():
dig1_list.append(0)
def dig_1():
dig1_list.append(1)
def dig_2():
dig1_list.append(2)
def dig_3():
dig1_list.append(3)
def dig_4():
dig1_list.append(4)
def dig_5():
dig1_list.append(5)
def dig_6():
dig1_list.append(6)
def dig_7():
dig1_list.append(7)
def dig_8():
dig1_list.append(8)
def dig_9():
dig1_list.append(9)
def dig_add():
opd = 0
dig1_list.reverse()
left_shift = 1
for i in dig1_list:
opd = opd + i*left_shift
left_shift *= 10
dig2_list.append(opd)
dig2_list.append("+")
dig1_list.clear()
def dig_sub():
opd = 0
dig1_list.reverse()
left_shift = 1
for i in dig1_list:
opd = opd + i*left_shift
left_shift *= 10
dig2_list.append(opd)
dig2_list.append("-")
dig1_list.clear()
def dig_mul():
opd = 0
dig1_list.reverse()
left_shift = 1
for i in dig1_list:
opd = opd + i*left_shift
left_shift *= 10
dig2_list.append(opd)
dig2_list.append("*")
dig1_list.clear()
def dig_div():
opd = 0
dig1_list.reverse()
left_shift = 1
for i in dig1_list:
opd = opd + i*left_shift
left_shift *= 10
dig2_list.append(opd)
dig2_list.append("/")
dig1_list.clear()
def dig_fac():
opd = 0
dig1_list.reverse()
left_shift = 1
for i in dig1_list:
opd = opd + i*left_shift
left_shift *= 10
dig2_list.append(opd)
dig2_list.append("**")
dig1_list.clear()
def dig_equ():
opd = 0
dig1_list.reverse()
left_shift = 1
for i in dig1_list:
opd = opd + i * left_shift
left_shift *= 10
dig2_list.append(opd)
dig1_list.clear()
if dig2_list[1] == "+":
dig_anser.append(dig2_list[0]+dig2_list[2])
elif dig2_list[1] == "-":
dig_anser.append(dig2_list[0]-dig2_list[2])
elif dig2_list[1] == "*":
dig_anser.append(dig2_list[0]*dig2_list[2])
elif dig2_list[1] == "/":
dig_anser.append(dig2_list[0]/dig2_list[2])
elif dig2_list[1] == "**":
dig_anser.append(dig2_list[0]**dig2_list[2])
else:
label2.config(text="非法输入")
label2.config(text = str(dig_anser[0]))
dig1_list.clear()
dig2_list.clear()
dig_anser.clear()
btn0.config(command = dig_0)
btn1.config(command = dig_1)
btn2.config(command = dig_2)
btn3.config(command = dig_3)
btn4.config(command = dig_4)
btn5.config(command = dig_5)
btn6.config(command = dig_6)
btn7.config(command = dig_7)
btn8.config(command = dig_8)
btn9.config(command = dig_9)
bt_add.config(command = dig_add)
bt_sub.config(command = dig_sub)
bt_mul.config(command = dig_mul)
bt_div.config(command = dig_div)
bt_fac.config(command = dig_fac)
bt_equ.config(command = dig_equ)
win.title("简易计算器")
win.geometry('300x300')
win.mainloop()
运行效果: