基于Tkinter用50行Python代码实现简易计算器

Tkinter一般是python自带的,所以代码不需要其他组件,本程序是在python2.7版本实现的。

主要涉及了tkinter的使用,函数定义和调用,匿名函数的使用,类成员函数定义等python基础知识,适合新手学习。

代码如下:

from Tkinter import *

#创建横条型框架
def frame(root, side):
    w = Frame(root)
    w.pack(side = side, expand = YES, fill = BOTH)
    return w
#创建按钮
def button(root, side, text, command = None):
    w = Button(root, text = text, command = command)
    w.pack(side = side, expand = YES, fill = BOTH)
    return w
#继承了Frame类,初始化程序界面的布局
class Calculator(Frame):
    def __init__(self):

        Frame.__init__(self)

        self.pack(expand = YES, fill = BOTH)
        self.master.title('Simple Calculater')

        display = StringVar()
        #添加输入框
        Entry(self, relief = SUNKEN,
              textvariable = display).pack(side = TOP, expand = YES,
                                           fill = BOTH)
		#添加横条型框架以及里面的按钮
        for key in('123', '456', '789', '-0.'):
            keyF = frame(self, TOP)
            for char in key:
                button(keyF, LEFT, char, lambda w = display, c = char:w.set(w.get() + c))
		#添加操作符按钮
        opsF = frame(self, TOP)
        for char in '+-*/=':
            if char == '=':
                btn = button(opsF, LEFT, char)
                btn.bind('<ButtonRelease - 1>', lambda e, s = self, w = display:s.calc(w), '+')

            else:
                btn = button(opsF, LEFT, char, lambda w = display, s = '%s' %char:w.set(w.get() + s))
		#添加清除按钮
        clearF = frame(self, BOTTOM)
        button(clearF, LEFT, 'clear', lambda w = display:w.set(''))

	#调用eval函数计算表达式的值
    def calc(self, display):
        try:
            display.set(eval(display.get()))
        except:
            display.set("ERROR")
#程序的入口
if __name__ == '__main__':
    print('ok')
    Calculator().mainloop()

实现效果如下图:

基于Tkinter用50行Python代码实现简易计算器

时间: 06-16

基于Tkinter用50行Python代码实现简易计算器的相关文章

50行Python代码构建小型区块链

本文介绍了如何使用python构建一个小型的区块链技术,使用Python2实现,代码不到50行. Although some think blockchain is a solution waiting for problems, there's no doubt that this novel technology is a marvel of computing. But, what exactly is a blockchain?虽然有人认为区块链本身仍有很多问题需要解决,但毫无疑问,这种

50 行 Python 代码,带你追到最心爱的人

程序员世纪难题 人们一提到程序员第一反应就是:我知道!他们工资很高啊!但大部分都是单身狗,不懂得幽默风趣,只是每天穿格子 polo 衫的宅男一个.甚至程序员自己也这样形容自己:钱多话少死的早.程序员总是爱这样黑自己.大部分的程序员都是单身这是一个不争的事实,也是程序员一个世纪难题.但程序员并不是大部分都非常的呆板,相反我认知的很多程序员都非常幽默风趣.会利用自己所学的知识,为生活,为自己心爱的人带来一些惊喜. 今天我就教大家如何做一个风趣又不失逼格的 python 程序.利用 python 每天

人脸检测真的不难,50行Python代码就能实现人脸检测

Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程,都放在了文章结尾,欢迎前来领取! *注意:全文代码可以滑动查看 现在的人脸识别技术已经得到了非常广泛的应用,支付领域.身份验证.美颜相机里都有它的应用.用iPhone的同学们应该对下面的功能比较熟悉. iPhone的照片中有一个"人物"的功能,能够将照片里的人脸识别出来并分类,背后的原理也是人脸识别技术. 这篇文章主要介绍怎样用Python实现人脸检测.人

Python学习:50 行 Python 代码,带你追到最心爱的人

程序员世纪难题 人们一提到程序员第一反应就是:我知道!他们工资很高啊!但大部分都是单身狗,不懂得幽默风趣,只是每天穿格子 polo 衫的宅男一个.甚至程序员自己也这样形容自己:钱多话少死的早.程序员总是爱这样黑自己.大部分的程序员都是单身这是一个不争的事实,也是程序员一个世纪难题.但程序员并不是大部分都非常的呆板,相反我认知的很多程序员都非常幽默风趣.会利用自己所学的知识,为生活,为自己心爱的人带来一些惊喜. 今天我就教大家如何做一个风趣又不失逼格的 python 程序.利用 python 每天

50行python代码实现个代理服务器(你懂的)

之前遇到一个场景是这样的: 我在自己的电脑上需要用mongodb图形客户端,但是mongodb的服务器地址没有对外网开放,只能通过先登录主机A,然后再从A连接mongodb服务器B. 本来想通过ssh端口转发的,但是我没有从机器A连接ssh到B的权限.于是就自己用python写一个. 原理很简单. 1.开一个socket server监听连接请求 2.每接受一个客户端的连接请求,就往要转发的地址建一条连接请求.即client->proxy->forward.proxy既是socket服务端(监

50行python代码实现个代理server(你懂的)

之前遇到一个场景是这种: 我在自己的电脑上须要用mongodb图形client,可是mongodb的server地址没有对外网开放,仅仅能通过先登录主机A,然后再从A连接mongodbserverB. 本来想通过sshport转发的,可是我没有从机器A连接ssh到B的权限.于是就自己用python写一个. 原理非常easy. 1.开一个socket server监听连接请求 2.每接受一个客户端的连接请求,就往要转发的地址建一条连接请求.即client->proxy->forward.prox

50 行Python代码,轻松实现中英文翻译

Python学习交流群:125240963,群内每天分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎各位小伙伴入群学习交流 现在的时代,越来越看重英语能力.如果你懂得英语,你会接触到更大的世界,你会发现更多的信息.尤其是对于程序员来说,好的编程资料都是来自英文文档.那些国内的翻译的版本,有很多内容跟原版相差的太多,甚至牛头不对马嘴. 虽然现在有非常多的翻译软件,但通过自己动手写个 python 小程序,是非常的有成就感.甚至你借助今天的代码,也可以自己开发个小型翻译软件.

50行Python代码实现视频中物体颜色识别和跟踪

前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 机器学习与统计学 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 目前计算机视觉(CV)与自然语言处理(NLP)及语音识别并列为人工智能三大热点方向,而计算机视觉中的对象检测(objectdetection

10 行Python 代码,实现 AI 目标检测技术,真给力!

只需10行Python代码,我们就能实现计算机视觉中目标检测. from imageai.Detection import ObjectDetection import os execution_path = os.getcwd() detector = ObjectDetection() detector.setModelTypeAsRetinaNet() detector.setModelPath( os.path.join(execution_path , "resnet50_coco_b