Python只用40行代码编写的计算器实例

yipeiwu_com5年前Python基础

本文实例讲述了Python只用40行代码编写的计算器。分享给大家供大家参考,具体如下:

效果图:

代码:

from tkinter import *
reset=True
def buttonCallBack(event):
  global label
  global reset
  num=event.widget['text']
  if num=='C':
    label['text']="0"
    return
  if num in "=":
    label['text']=str(eval(label['text']))
    reset=True
    return
  s=label['text']
  if s=='0' or reset==True:
    s=""
    reset=False
  label['text']=s+num
#主窗口
root=Tk()
root.wm_title("计算器")
#显示栏1
label=Label(root,text="0",background="white",anchor="e")
label['width']=35
label['height']=2
label.grid(row=1,columnspan=4,sticky=W)
#按钮
showText="789/456*123-0.C+"
for i in range(4):
  for j in range(4):
    b=Button(root,text=showText[i*4+j],width=7)
    b.grid(row=i+2,column=j)
    b.bind("<button-1>",buttonCallBack)
showText="()"
for i in range(2):www.jb51.net
  b=Button(root,text=showText[i],width=7)
  b.grid(row=6,column=2+i)
  b.bind("<button-1>",buttonCallBack)
b=Button(root,text="=")
b.grid(row=6,columnspan=2,sticky="we")
b.bind("<button-1>",buttonCallBack)
root.mainloop()
</button-1></button-1></button-1>

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python2.7环境Flask框架安装简明教程【已测试】

Python2.7环境Flask框架安装简明教程【已测试】

本文详细讲述了Python2.7环境Flask框架安装方法。分享给大家供大家参考,具体如下: 第1步:确保本机已经安装有python,下载easy_install到本地某一目录,双击ez...

Python numpy.zero() 初始化矩阵实例

那就废话不多说,直接上代码吧! new_array = np.zeros((107,4))# 共107行 每行4列 初值为0 >>> new_array = np...

深入分析python数据挖掘 Json结构分析

深入分析python数据挖掘 Json结构分析

json是一种轻量级的数据交换格式,也可以说是一种配置文件的格式 这种格式的文件是我们在数据处理经常会遇到的 python提供内置的模块json,只需要在使用前导入即可  ...

Python读写Redis数据库操作示例

使用Python如何操作Redis呢?下面用实例来说明用Python读写Redis数据库。比如,我们插入一条数据,如下:复制代码 代码如下:import redisclass Datab...

Django中更新多个对象数据与删除对象的方法

更新多个对象 例如说我们现在想要将Apress Publisher的名称由原来的”Apress”更改为”Apress Publishing”。若使用save()方法,如: >&...