[IT学习]转载python 项目 计算器
2017-07-29 15:22
302 查看
这个是从网上搜到的Python小项目之计算器(原文地址:http://www.2cto.com/kf/201402/279637.html)。但该段代码估计是Python2写的。
如果你使用的程序是Python3以上版本,需要自行安装pillow。Windows可以在命令行中使用pipinstallpillow。
但是在程序中引用时,pillow的名称依然是PIL。具体看下面的例子。
【思考】
1、tkinter编程要考虑哪些方面?
2、这个程序还有哪些不完善的?例如输入9+-2,看看结果是多少?
3、把电脑里的计算器拿出来看看,对比下,有哪些地方可以完善?
4、grid方式布局有哪些优点,有哪些缺点?
如果你使用的程序是Python3以上版本,需要自行安装pillow。Windows可以在命令行中使用pipinstallpillow。
但是在程序中引用时,pillow的名称依然是PIL。具体看下面的例子。
【思考】
1、tkinter编程要考虑哪些方面?
2、这个程序还有哪些不完善的?例如输入9+-2,看看结果是多少?
3、把电脑里的计算器拿出来看看,对比下,有哪些地方可以完善?
4、grid方式布局有哪些优点,有哪些缺点?
#-*-coding:utf-8-*- #author:Cullen #原来的代码中有这个作者信息,可以以“cullentpython”搜搜看,不确定是否同一个人
#importthemodule fromtkinterimport* importtkinter.fontastkFont importos fromfunctoolsimportpartial fromPILimportImage,ImageTk defget_input(entry,argu): entry.insert(END,argu) defbackspace(entry): input_len=len(entry.get()) entry.delete(input_len-1) defclear(entry): entry.delete(0,END) defcalc(entry): input=entry.get() output=str(eval(input.strip())) clear(entry) entry.insert(END,output) defcal(): root=Tk() root.title("Calc") root.resizable(0,0) entry_font=tkFont.Font(size=12) entry=Entry(root,justify="right",font=entry_font) entry.grid(row=0,column=0,columnspan=4,sticky=N+W+S+E,padx=5,pady=5) button_font=tkFont.Font(size=10,weight=tkFont.BOLD) button_bg='#D5E0EE' button_active_bg='#E5E35B' myButton=partial(Button,root,bg=button_bg,padx=10,pady=3,activebackground=button_active_bg) button7=myButton(text='7',command=lambda:get_input(entry,'7')) button7.grid(row=1,column=0,pady=5) button8=myButton(text='8',command=lambda:get_input(entry,'8')) button8.grid(row=1,column=1,pady=5) button9=myButton(text='9',command=lambda:get_input(entry,'9')) button9.grid(row=1,column=2,pady=5) button10=myButton(text='+',command=lambda:get_input(entry,'+')) button10.grid(row=1,column=3,pady=5) button4=myButton(text='4',command=lambda:get_input(entry,'4')) button4.grid(row=2,column=0,pady=5) button5=myButton(text='5',command=lambda:get_input(entry,'5')) button5.grid(row=2,column=1,pady=5) button6=myButton(text='6',command=lambda:get_input(entry,'6')) button6.grid(row=2,column=2,pady=5) button11=myButton(text='-',command=lambda:get_input(entry,'-')) button11.grid(row=2,column=3,pady=5) button1=myButton(text='1',command=lambda:get_input(entry,'1')) button1.grid(row=3,column=0,pady=5) button2=myButton(text='2',command=lambda:get_input(entry,'2')) button2.grid(row=3,column=1,pady=5) button3=myButton(text='3',command=lambda:get_input(entry,'3')) button3.grid(row=3,column=2,pady=5) button12=myButton(text='*',command=lambda:get_input(entry,'*')) button12.grid(row=3,column=3,pady=5) button0=myButton(text='0',command=lambda:get_input(entry,'0')) button0.grid(row=4,column=0,columnspan=2,padx=3,pady=5,sticky=N+S+E+W) button13=myButton(text='.',command=lambda:get_input(entry,'.')) button13.grid(row=4,column=2,pady=5) button14=Button(root,text='/',bg=button_bg,padx=10,pady=3, command=lambda:get_input(entry,'/')) button14.grid(row=4,column=3,pady=5) button15=Button(root,text='<-',bg=button_bg,padx=10,pady=3, command=lambda:backspace(entry),activebackground=button_active_bg) button15.grid(row=5,column=0,pady=5) button16=Button(root,text='C',bg=button_bg,padx=10,pady=3, command=lambda:clear(entry),activebackground=button_active_bg) button16.grid(row=5,column=1,pady=5) button17=Button(root,text='=',bg=button_bg,padx=10,pady=3, command=lambda:calc(entry),activebackground=button_active_bg) button17.grid(row=5,column=2,columnspan=2,padx=3,pady=5,sticky=N+S+E+W) root.mainloop() if__name__=='__main__': cal()
相关文章推荐
- [IT学习]Python 小项目 通讯录 思路
- PYTHON HTML.PARSER库学习小结--转载
- [转载]Python装饰器学习(九步入门)
- Spring AOP详解 一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博
- 转载:IT项目管理之你要敢说“NO”
- Python Twisted 学习系列11(转载stulife最棒的Twisted入门教程)
- java项目实战-计算器(页面布局学习 添加事件)
- python开发学习-day15(前端部分知识、web框架、Django创建项目)
- 使用minidom来处理XML的示例(Python 学习)(转载)
- 《Python 二三事》——python学习必看(转载)
- PYTHON HTML.PARSER库学习小结--转载
- 房地产业务学习(06)-开发项目管理的难点分析&IT系统价值
- (转载)Python学习–数据分析路线
- python+Django+pycharm+mysql 环境搭建及第一个项目学习笔记
- 笨方法学习Python-习题46: 一个项目骨架
- 【python学习资料】各种python 函数参数定义和解析 --转载自byte_way
- (转)Python学习路径及练手项目合集
- Python Twisted 学习系列12(转载stulife最棒的Twisted入门教程)
- 【转载】Python学习笔记——条件判断
- Python学习路径及练手项目合集