对象方法编写计算器

import tkinter



class  niubijisuanq:




        def __init__(self):
            self.root = tkinter.Tk()
            self.root.title('某某的计算器')
            self.root.minsize(300, 420)

            self.pinmu = tkinter.StringVar()
            self.pinmu.set('0')

#创建一个列表
            self.dbg = []
#创建个变量
            self.ama = False

#面板调用
            self.minaban()
            self.root.mainloop()
	#按键
        def  anjian(self,num):

            if  self.ama == True:

                self.pinmu.set('0')
                self.ama = False

            if  self.pinmu.get() == '0':
                self.pinmu.set(num)

                if self.pinmu.get() =='.':
                    self.pinmu.set('0'+num)

            else:
                if self.pinmu.get().count('.')==0:
                    self.pinmu.set(self.pinmu.get()+num)

                elif num != '.':
                    self.pinmu.set(self.pinmu.get()+num)


	#符号
        def fuhao(self,xin):

            xinzhi = self.pinmu.get()

            self.dbg.append(xinzhi)

            self.dbg.append(xin)

            print(self.dbg)
            self.ama = True

	#等于
        def  denghao(self):
            try:
                    xinzhi  = self.pinmu.get()

                    self.dbg.append(xinzhi)

                    res = eval(''.join(self.dbg))

                    print(res)

                    self.pinmu.set(round(res,8))

                    self.dbg.clear()
            except ZeroDivisionError :
                self.pinmu.set('数学是体育是教的')
	#删除
        def delete(self):

            if self.pinmu.get() == '' or self.pinmu.get() == '0':
                self.pinmu.set('0')
                return

            chang = len(self.pinmu.get())

            if chang >1:

                changdu = self.pinmu.get()

                changdu = changdu[0:chang-1]

                self.pinmu.set(changdu)

            else:
                self.pinmu.set('0')

	#清空
        def qingk(self):

            self.dbg = []
            self.pinmu.set('0')
            self.ama =True
	#正负
        def  zhengfu(self):
            huoquzhi = self.pinmu.get()

            if huoquzhi[0] == '-':
                self.pinmu.set(huoquzhi[1:])
            elif huoquzhi[0] != '-' and huoquzhi[0] != '0' :
                self.pinmu.set('-'+huoquzhi)
            else:
                huoquzhi.startswith('0.')
                self.pinmu.set('-'+huoquzhi)

        def minaban(self):
            # 屏幕显示


            gj = tkinter.Label(self.root,textvariable =self.pinmu , bg='red', bd=5, anchor='se', font=('宋体', 30))
            gj.place(x=10, y=5, width=280, height=60)

            gj1 = tkinter.Button(text='1',command = lambda :self.anjian('1'))
            gj1.place(x=10, y=140, width=60, height=60)

            gj2 = tkinter.Button(text='2', command= lambda :self.anjian('2'))
            gj2.place(x=80, y=140, width=60, height=60)

            gj3 = tkinter.Button(text='3', command=lambda :self.anjian('3'))
            gj3.place(x=150, y=140, width=60, height=60)

            gj4 = tkinter.Button(text='4', command= lambda :self.anjian('4'))
            gj4.place(x=10, y=210, width=60, height=60)

            gj5 = tkinter.Button(text='5', command= lambda :self.anjian('5'))
            gj5.place(x=80, y=210, width=60, height=60)

            gj6 = tkinter.Button(text='6', command= lambda :self.anjian('6'))
            gj6.place(x=150, y=210, width=60, height=60)

            gj7 = tkinter.Button(text='7', command= lambda :self.anjian('7'))
            gj7.place(x=10, y=280, width=60, height=60)

            gj8 = tkinter.Button(text='8', command= lambda :self.anjian('8'))
            gj8.place(x=80, y=280, width=60, height=60)

            gj9 = tkinter.Button(text='9', command= lambda :self.anjian('9'))
            gj9.place(x=150, y=280, width=60, height=60)

            gj0 = tkinter.Button(text='0', command= lambda :self.anjian('0'))
            gj0.place(x=10, y=350, width=130, height=60)

            gjd = tkinter.Button(text='.', command= lambda :self.anjian('.'))
            gjd.place(x=150, y=350, width=60, height=60)

            gjjia = tkinter.Button(text='-', command= lambda :self.fuhao('-') )
            gjjia.place(x=220, y=140, width=60, height=60)

            gjjia1 = tkinter.Button(text='*', command= lambda :self.fuhao('*'))
            gjjia1.place(x=220, y=210, width=60, height=60)

            gjcheng = tkinter.Button(text='/', command= lambda :self.fuhao('/'))
            gjcheng.place(x=220, y=280, width=60, height=60)

            gjchu1 = tkinter.Button(text='=', command= self.denghao)
            gjchu1.place(x=220, y=350, width=60, height=60)

            gjchu2 = tkinter.Button(text='←', command=self.delete)
            gjchu2.place(x=10, y=70, width=60, height=60)

            gjchu3 = tkinter.Button(text='C', command=self.qingk)
            gjchu3.place(x=80, y=70, width=60, height=60)

            gjchu4 = tkinter.Button(text='±', command=self.zhengfu)
            gjchu4.place(x=150, y=70, width=60, height=60)

            gjchu5 = tkinter.Button(text='+', command= lambda :self.fuhao('+'))
            gjchu5.place(x=220, y=70, width=60, height=60)


gj = niubijisuanq()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值