python+tkinterGUI编写简易计算器

设计内容:

设计一个简单计算器

设计要求:

实现简单计算器功能,包括两个数的加、减、乘、除和求幂运算。设计一个计算器界面

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()

运行效果:

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值