Python实现简单计算器

from tkinter import *

root =Tk()
root.title("计算器")

result=StringVar()
result.set(" ")

label=Label(root,text="",width=25,height=2,relief="raised",anchor=SE,textvariable=result)
label.grid(row=0, column=0,columnspan=4,padx=5,pady=5)

Button(root, text="C",width=5,fg="blue",command = lambda:result.set("")).grid(row=1, column=0)
Button(root, text="DEL",width=5,command=lambda: result.set(result.get()[:-1])).grid(row=1,column=1)
Button(root, text="BCK",width=5,command=lambda: result.set(result.get()[:-1])).grid(row=1,column=2)
Button(root, text="/",width=5,command = lambda: result.set(result.get()+"/")).grid(row=1,column=3)
Button(root, text="7",width=5,command = lambda: result.set(result.get()+"7")).grid(row=2, column=0)
Button(root, text="8",width=5,command = lambda: result.set(result.get()+"8")).grid(row=2, column=1)
Button(root, text="9",width=5,command = lambda: result.set(result.get()+"9")).grid(row=2, column=2)
Button(root, text="*",width=5,command = lambda: result.set(result.get()+"*")).grid(row=2, column=3)
Button(root, text="4",width=5,command = lambda: result.set(result.get()+"4")).grid(row=3, column=0)
Button(root, text="5",width=5,command = lambda: result.set(result.get()+"5")).grid(row=3, column=1)
Button(root, text="6",width=5,command = lambda: result.set(result.get()+"6")).grid(row=3, column=2)
Button(root, text="-",width=5,command = lambda: result.set(result.get()+"-")).grid(row=3, column=3)
Button(root, text="1",width=5,command = lambda: result.set(result.get()+"1")).grid(row=4, column=0)
Button(root, text="2",width=5,command = lambda: result.set(result.get()+"2")).grid(row=4, column=1)
Button(root, text="3",width=5,command = lambda: result.set(result.get()+"3")).grid(row=4, column=2)
Button(root, text="+",width=5,command = lambda: result.set(result.get()+"+")).grid(row=4, column=3)
Button(root, text="0",width=5,command = lambda: result.set(result.get()+"0")).grid(row=5, column=0)
Button(root,text=".",width=5,command=lambda :result.set(result.get()+".")).grid(row=5,column=1)
Button(root, text="=",width=12,command = lambda: result.set(result.get()+"="+str(eval(result.get())))).grid(row=5, column=2,columnspan=2)

root.mainloop()

效果如下:

优点:

①简洁明了的界面设计:计算器的布局清晰,按钮排列整齐,涵盖了基础的数字、运算符以及功能键符合大多数用户的使用习惯。

②实时显示计算过程:通过StringVar变量result与标签组件绑定,实现了计算过程的实时显示,用户能够清楚地看到输入的每一个数字和运算符,以及最终的计算结果。

③灵活的事件处理:利用lambda匿名函数,为每个按钮定义了点击事件处理逻辑,使得每个按钮都能根据其功能正确地修改result变量的值,实现不同的操作,如数字输入、运算符添加、结果计算等。

④基础功能全面:包含了加减乘除四则运算,支持小数点输入,以及结果的显示,满足基本的计算需求。

⑤简洁的代码结构:通过循环和网格布局(.grid)简化了界面布局的代码,使得整体代码较为紧凑和易于理解。

⑥即时计算能力:按下等号(=)按钮时,通过eval函数直接计算字符串形式的表达式,得到计算结果并显示,简化了手动编写计算逻辑的过程。

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值