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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。