`
xxi
  • 浏览: 65952 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

给MM写的一个计算器(python Tk编写)

阅读更多

直接上代码:

 

from __future__ import division 
from Tkinter import Tk, Entry, Button, Label, mainloop
from tkFont import Font


def pp(ev=None):
  foodl = ''
  try: foodl = eval( text.get())
  except : pass
  if isinstance(foodl, (int,float,long)): pass
  else: foodl = 'Error..'
  label.config(text=foodl)


#主窗口
top = Tk()
top.title('compute')

ft = Font(family = ('Verdana'), size = 8 ) #字体
#注册组件
text = Entry(top, font= ft)
button = Button(top, text='计算(注意先后运算)', command=pp)
label = Label(text='运算符: + - * / % **', font=ft)


Enter = lambda x: x.keycode == 13 and pp()

Key = lambda x: label.config(text='运算符: + - * / % **')

text.bind('<Key>', Enter)#回车事件
text.focus()  #获得焦点

#

text.bind('<Button-1>', Key)
text.pack()
button.pack() 
label.pack()
mainloop()

 

 

就这么多了,   有什么更好的解决方案,欢迎评论!

 

 

 

附件有截图和用PyInstaller打包好的exe文件

图片不能全部显示, 点击查看就可以了

 

源码已经上传...

  • 大小: 3.2 KB
  • 大小: 3.1 KB
  • 大小: 3.1 KB
分享到:
评论
8 楼 火星来客 2009-12-08  
用eval比较简单,适合在mm面前显显,但是不适合自我提升,直接用逆波兰,不知道python里有没有什么LL(1)的文法生成框架
7 楼 lich0079 2009-12-08  
高级语言就是好
一个eval解决了很多事情
6 楼 conservatism 2009-12-07  
“注意先后运算”,太雷了
5 楼 flyingzl 2009-12-07  
进入还可以这么看,我还以为楼主去自己计算里面的括号、加减乘除呢。。。

C:\Documents and Settings\flyingzl>python
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> s='(23+2)*3-(1*4)'
>>> eval(s)
71
>>>
4 楼 xxi 2009-12-04  
另外我不知道,Tk窗口居中的方法..

如果有知道,请告知!!
3 楼 xxi 2009-12-04  
linwenbin 写道
下载下来看看 有源码吗


源码已经全部贴出来了!!

我传一个吧...
2 楼 linwenbin 2009-12-03  
下载下来看看 有源码吗
1 楼 xxi 2009-12-02  
<div class="quote_title"><span style="font-weight: normal;"><strong><br></strong></span></div>
<p>沙发自己占了</p>

相关推荐

Global site tag (gtag.js) - Google Analytics