当前位置:首页>python>python高阶:28、简易计算器的实现

python高阶:28、简易计算器的实现

  • 2026-09-08 22:56:38
python高阶:28、简易计算器的实现
1、tkinter库实现的简易计算器:包含完整的界面和基本运算功能(加、减、乘、除),并支持连续输入、清空、退格等操作。
import tkinter as tk           #以别名方式导入tkinter库import tkinter.font as tkFontfrom tkinter import END      #导入END参数#定义函数:向文本框中插入数据def get_input(entry,arg):    entry.insert(END,arg)   #在文本框的末尾插入字符arg#定义函数:回退操作def backspace(entry):    length=len(entry.get())   #获取文本框中字符串的长度    entry.delete(length-1)    #删除文本框中最后一个字符(最后一个字符的索引)#定义函数:清空操作def clear(entry):    entry.delete(0,END)      #删除索引0-END的字符#定义函数:计算字符串表达式的结果def equal(entry):    str1=entry.get()        #获取输入框中的字符串表达式    result=eval(str1)       #eval()函数返回字符串表达式的结果    entry.delete(0,END)     #清空文本框    entry.insert(0,result)  #在文本框中插入计算结果def calculator():              #创建主窗口并笔输入和按键控件    root=tk.Tk()               #创建主窗口    root.title("计算器")        #设置窗口标题    root.geometry("200x250+600+200") #设置窗口的大小和位置    root.resizable(0,0)        #设置窗口大小不可调    #创建输入组件    entry=tk.Entry(root,justify="right",font=tkFont.Font(size=13))    entry.grid(row=0,column=0,columnspan=4,sticky="W",padx=7,pady=5)    #利用partial函数创建按键的固有属性    bg1="#D5E0EE"              #设置按键的背景颜色    bg2="#E5E35B"              #设置按键被点击后的背景颜色    #设置按键:数字7    b_7=tk.Button(root,text="7",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"7"))    b_7.grid(row=1,column=0,pady=3)    #设置按键:数字8    b_8=tk.Button(root,text="8",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"8"))    b_8.grid(row=1,column=1,pady=3)    #设置按键:数字9    b_9=tk.Button(root,text="9",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"9"))    b_9.grid(row=1,column=2,pady=3)    #设置按键:运算符+    b_add=tk.Button(root,text="+",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"+"))    b_add.grid(row=1,column=3,pady=3)    #设置按键:数字4    b_4=tk.Button(root,text="4",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"4"))    b_4.grid(row=2,column=0,pady=3)    #设置按键:数字5    b_5=tk.Button(root,text="5",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"5"))    b_5.grid(row=2,column=1,pady=3)    #设置按键:数字6    b_6=tk.Button(root,text="6",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"6"))    b_6.grid(row=2,column=2,pady=3)    #设置按键:运算符-    b_sub=tk.Button(root,text="-",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"-"))    b_sub.grid(row=2,column=3,pady=3)    #设置按键:数字1    b_1=tk.Button(root,text="1",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"1"))    b_1.grid(row=3,column=0,pady=3)    #设置按键:数字2    b_2=tk.Button(root,text="2",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"2"))    b_2.grid(row=3,column=1,pady=3)    #设置按键:数字3    b_3=tk.Button(root,text="3",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"3"))    b_3.grid(row=3,column=2,pady=3)    #设置按键:运算符*    b_mul=tk.Button(root,text="*",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"*"))    b_mul.grid(row=3,column=3,pady=3)    #设置按键:数字0    b_0=tk.Button(root,text="0",width=8,padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"0"))    b_0.grid(row=4,column=0,columnspan=2,pady=3)    #设置按键:小数点.    b_point=tk.Button(root,text=".",width=1,padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"."))    b_point.grid(row=4,column=2,pady=3)    #设置按键:运算符/    b_div=tk.Button(root,text="/",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:get_input(entry,"/"))    b_div.grid(row=4,column=3,pady=3)    #设置按键:退格<-    b_back=tk.Button(root,text="<-",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:backspace(entry))    b_back.grid(row=5,column=0,pady=3)    #设置按键:清空C    b_clear=tk.Button(root,text="C",padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:clear(entry))    b_clear.grid(row=5,column=1,pady=3)    #设置按键:等于=    b_equal=tk.Button(root,text="=",width=8,padx=10,pady=3,bg=bg1,activebackground=bg2,command=lambda:equal(entry))    b_equal.grid(row=5,column=2,columnspan=2,pady=3)    root.mainloop()    #保持主窗口的显示calculator()

最新文章

随机文章