python编写计算器功能
本文实现用python编写一个带界面的计算器小程序,当然这个计算器功能很简单,只能进行一些简单的数学运算,很适合初学者,希望能给大家带来一些启发
实验前提
- 因为是带图形界面的,所以用的版本是在windows10上安装的Python3.7.4
- 程序里调用了tkinter模块包,有些环境需要手动安装这个包,安装步骤自行百度
- 我这个是在直接windows应用商店装的,已经自动导入tkinter包,建议使用此方法、
程序代码
#coding:utf-8 #将tkinter改为Tkinter兼容Python2.x fromtkinterimport* classApp: def__init__(self,master): self.master=master self.initWidgets() self.hi=None definitWidgets(self): #创建一个输入组件 self.show=Label(relief=SUNKEN,font=('CourierNew',24),\ width=23,bg='white',anchor=W) #对该输入组件使用Pack布局,放在容器顶部 self.show.pack(side=TOP,pady=10) p=Frame(self.master) p.pack(side=TOP) #定义字符串的元组 names=("+","1","2","3","↺" ,"-","4","5","6","**","*","7","8" ,"9","//","/",".","0","%","=") #遍历字符串元组 foriinrange(len(names)): #创建Button,将Button放入p组件中 b=Button(p,text=names[i],font=('Verdana',20),width=5) b.grid(row=i//5,column=i%5) #为鼠标左键的单击事件绑定事件处理方法 b.bind('',self.click) #为鼠标左键的双击事件绑定事件处理方法 ifb['text']=='↺':b.bind(' ',self.clean) #定义一个记录输入数字次数的变量 self.i=0 defclick(self,event): #如果用户单击的是数字键或点号 if(event.widget['text']in('0','1','2','3',\ '4','5','6','7','8','9','.')): #判断self.i是否为0,0的话清空show['text']的值 ifself.i==0: self.show['text']='' self.show['text']=self.show['text']+event.widget['text'] self.i=self.i+1 print(self.i) #如果用户单击了运算符 elif(event.widget['text']in('+','-','*','/','%','**','//')): #把输入的数字与输入的字符相结合,组成一个数学运算式 self.show['text']=self.show['text']+event.widget['text'] elif(event.widget['text']=='='andself.show['text']isnotNone): #赋值给self.hi self.hi=self.show['text'] #其实这一步可以不要,主要作用是在调试时可以在后台看输入的数据 print(self.hi) #使用eval函数计算表达式的值 self.show['text']=str(eval(self.hi)) self.hi=None self.i=0 #点击↺(恢复)按钮时,程序清空计算结果、将表达式设为None defclean(self,event): self.hi=None self.show['text']='' root=Tk() root.title("简单科学计算器") App(root) root.mainloop()
小知识:
效果如图
结语:
如果有不理解的地方欢迎留言
本文参考疯狂python讲义
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。