python简易计算器的实现

#导入模块
import datetime,time,tkinter
#新建一个窗口
windows=tkinter.Tk()
#给窗口定义标题
windows.title('简易计算器')
#给窗口定义尺寸
windows.geometry('500x600')
#-------------------------------逻辑事件---------------------

content=''
def btn_onclick(data):
    global content
    if data=='CE' or data=='AC':
        expression.set('')
        result.set('')
        content=''
    elif data== '=':
        result.set(f'{eval(content)}')
    else:
        content+=data
        expression.set(content)


#-------------------------界面--------------------------------
lable_date=tkinter.Label(windows,text='当天日期:',font=('楷体',16))
lable_date.place(x=0,y=240,width=100,height=40)
#获取当前系统时间
get_time=tkinter.StringVar(value=time.strftime('%Y-%m-%d',time.localtime(time.time())))
#显示当前时间
lable_time=tkinter.Label(windows,textvariable=get_time,font=('楷体',16))
lable_time.place(x=100,y=240,width=130,height=40)
#给计算器按钮定义一个二维数组
btn_datas=[
    ['%','7','8','9','/'],
    ['**','4','5','6','-'],
    ['CE','1','2','3','*'],
    ['AC','0','//','+','=']
]
#循环按钮
for r in range(4):
    for c in range(5):
        btn_sumit=tkinter.Button(windows,text=btn_datas[r][c],font=('黑体',30),command=lambda x=btn_datas[r][c]:btn_onclick(x))
        btn_sumit.place(x=c*100,y=280+r*80,width=100,height=80)

#显示公式及结果
expression=tkinter.StringVar()
lable_exp=tkinter.Label(windows,textvariable=expression,font=('黑体',20))
lable_exp.place(x=20,y=20,width=400,height=50)

result=tkinter.StringVar()
lable_result=tkinter.Label(windows,textvariable=result,font=('黑体',30))
lable_result.place(x=360,y=180,width=100,height=50)

windows.mainloop()

 

posted on 2023-01-09 21:16  至清无物  阅读(107)  评论(0编辑  收藏  举报