python实现计算器功能


Posted in Python onOctober 31, 2019

本文实例为大家分享了python计算器的具体代码,供大家参考,具体内容如下

主要用到的工具是Python中的Tkinter库
比较简单
直接上图形界面和代码

python实现计算器功能

引用Tkinter库

from tkinter import *

建立主窗口对象

window=Tk() #设置窗口对象
window.title('counting machine')
window.geometry("350x280")
window['bg']='red'

建立标签框以及标签(将运算字符串显示在上面)

frame=LabelFrame(window,bg='yellow',width=350,height=50)
frame.pack()
frame.place(x=0,y=0)
label=Label(frame,text="1+1=2",height=3,width=50,bg='yellow')
label.pack() #显示框

设置全局变量字符串s,按一个按钮,将按钮对应的运算符加到这个字符串s中,最后利用eval函数进行计算。

global s
s=""

按钮0-9以及小数点的实现(大致思路都是一样的)

#按钮.
def figure_dot():
 global s
 s=s+"."
 label.config(text=s)
btn0=Button(window,text=".",width=4,command=figure_dot,bg='yellow')
btn0.place(x=150,y=220) #按钮.
#按钮0
def figure_0():
 global s
 s=s+"0"
 label.config(text=s)
btn0=Button(window,text="0",width=4,command=figure_0,bg='yellow')
btn0.place(x=80,y=220) #按钮0
#按钮1
def figure_1():
 global s
 s=s+"1"
 label.config(text=s)
btn1=Button(window,text="1",width=4,command=figure_1,bg='yellow')
btn1.place(x=10,y=80) #按钮1
#按钮2
def figure_2():
 global s
 s=s+"2"
 label.config(text=s)
btn2=Button(window,text="2",width=4,command=figure_2,bg='yellow')
btn2.place(x=80,y=80)#按钮2
#按钮3
def figure_3():
 global s
 s=s+"3"
 label.config(text=s)
btn3=Button(window,text="3",width=4,command=figure_3,bg='yellow')
btn3.place(x=150,y=80)#按钮3
#按钮4
def figure_4():
 global s
 s=s+"4"
 label.config(text=s)
btn4=Button(window,text="4",width=4,command=figure_4,bg='yellow')
btn4.place(x=10,y=130)#按钮4
#按钮5
def figure_5():
 global s
 s=s+"5"
 label.config(text=s)
btn5=Button(window,text="5",width=4,command=figure_5,bg='yellow')
btn5.place(x=80,y=130)#按钮5
#按钮6
def figure_6():
 global s
 s=s+"6"
 label.config(text=s)
btn6=Button(window,text="6",width=4,command=figure_6,bg='yellow')
btn6.place(x=150,y=130)#按钮6
#按钮7
def figure_7():
 global s
 s=s+"7"
 label.config(text=s)
btn7=Button(window,text="7",width=4,command=figure_7,bg='yellow')
btn7.place(x=10,y=180)#按钮7
#按钮8
def figure_8():
 global s
 s=s+"8"
 label.config(text=s)
btn8=Button(window,text="8",width=4,command=figure_8,bg='yellow')
btn8.place(x=80,y=180)#按钮8
#按钮9
def figure_9():
 global s
 s=s+"9"
 label.config(text=s)
btn9=Button(window,text="9",width=4,command=figure_9,bg='yellow')
btn9.place(x=150,y=180)#按钮9

运算符号的实现(±*/)

#加法按钮
def figure_addition():
 global s
 s=s+"+"
 label.config(text=s)
btn_add=Button(window,text="+",width=4,command=figure_addition,bg='yellow')
btn_add.place(x=220,y=80)#加法按钮
#减法按钮
def figure_subtraction():
 global s
 s=s+"-"
 label.config(text=s)
btn_sub=Button(window,text="-",width=4,command=figure_subtraction,bg='yellow')
btn_sub.place(x=220,y=130)#减法按钮
#乘法按钮
def figure_multiplication():
 global s
 s=s+"*"
 label.config(text=s)
btn_multi=Button(window,text="*",width=4,command=figure_multiplication,bg='yellow')
btn_multi.place(x=290,y=80)#乘法按钮
#除法按钮
def figure_division():
 global s
 s=s+"/"
 label.config(text=s)
btn_divi=Button(window,text="/",width=4,command=figure_division,bg='yellow')
btn_divi.place(x=290,y=130)#除法按钮

清空窗口按钮的实现

#清空按钮
def figure_clear():
 global s
 s=""
 label.config(text=s)
btn_clear=Button(window,text="clear",width=4,command=figure_clear,bg='yellow')
btn_clear.place(x=220,y=180)#清空按钮

结果输出的实现(eval函数)

#结果按钮
def figure_value():
 global s
 x=eval(s)
 s=str(x)
 label.config(text=s)
btn_value=Button(window,text="=",width=4,command=figure_value,bg='yellow')
btn_value.place(x=290,y=180)

颜色变换的实现(红变粉)

def figure_colorchange():
 window.config(bg="pink")
btn_value=Button(window,text="color",width=4,command=figure_colorchange,bg='yellow')
btn_value.place(x=10,y=220)#改变颜色
window.mainloop()

变换后

python实现计算器功能

这个简易计算器也就实现了,当然也可以加入其他的功能,如开方,乘幂等功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用chardet判断字符串编码的方法
Mar 13 Python
python计算一个序列的平均值的方法
Jul 11 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
基于python实现名片管理系统
Nov 30 Python
python 对字典按照value进行排序的方法
May 09 Python
python networkx 根据图的权重画图实现
Jul 10 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
Python类及获取对象属性方法解析
Jun 15 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
python中的Elasticsearch操作汇总
Oct 30 #Python
django实现用户注册实例讲解
Oct 30 #Python
详解Django CAS 解决方案
Oct 30 #Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 #Python
Django实现CAS+OAuth2的方法示例
Oct 30 #Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
Oct 30 #Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 #Python
You might like
php将时间差转换为字符串提示
2011/09/07 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
PHP中的表达式简述
2016/05/29 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
php适配器模式简单应用示例
2019/10/23 PHP
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Python中的asyncio代码详解
2019/06/10 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
股份合作协议书
2014/04/12 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
公积金具结保证书
2015/05/11 职场文书
雷锋观后感
2015/06/10 职场文书
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫