python编写计算器功能


Posted in Python onOctober 25, 2019

本文实现用python编写一个带界面的计算器小程序,当然这个计算器功能很简单,只能进行一些简单的数学运算,很适合初学者,希望能给大家带来一些启发

实验前提

  • 因为是带图形界面的,所以用的版本是在windows10上安装的Python 3.7.4
  • 程序里调用了tkinter模块包,有些环境需要手动安装这个包,安装步骤自行百度
  • 我这个是在直接windows应用商店装的,已经自动导入tkinter包,建议使用此方法、

程序代码

# coding: utf-8
# 将tkinter改为Tkinter兼容Python 2.x
from tkinter import *
class App:
 def __init__(self, master):
  self.master = master
  self.initWidgets()
  self.hi = None
 def initWidgets(self):
  # 创建一个输入组件
  self.show = Label(relief=SUNKEN, font=('Courier New', 24),\
   width=23, bg='white', anchor=W)
  # 对该输入组件使用Pack布局,放在容器顶部
  self.show.pack(side=TOP, pady=10)
  p = Frame(self.master)
  p.pack(side=TOP)
  # 定义字符串的元组
  names = ("+", "1" , "2" , "3" , "↺" 
   ,"-", "4" , "5" , "6" , "**" , "*", "7" , "8"
   , "9", "//", "/" , "." , "0" , "%", "=")
  # 遍历字符串元组
  for i in range(len(names)):
   # 创建Button,将Button放入p组件中
   b = Button(p, text=names[i], font=('Verdana', 20), width=5)
   b.grid(row=i // 5, column=i % 5)
   # 为鼠标左键的单击事件绑定事件处理方法
   b.bind('<Button-1>', self.click)
   # 为鼠标左键的双击事件绑定事件处理方法
   if b['text'] == '↺': b.bind('<Button-1>', self.clean)
  # 定义一个记录输入数字次数的变量
  self.i = 0
 def click(self, event):
  # 如果用户单击的是数字键或点号
  if(event.widget['text'] in ('0', '1', '2', '3',\
   '4', '5', '6', '7', '8', '9', '.')):
   # 判断self.i是否为0,0的话清空show['text']的值
   if self.i == 0 :
    self.show['text'] = ''
   self.show['text'] = self.show['text'] + event.widget['text']
   self.i = self.i + 1
   print(self.i)
  # 如果用户单击了运算符
  elif(event.widget['text'] in ('+', '-', '*', '/', '%', '**', '//')):
   # 把输入的数字与输入的字符相结合,组成一个数学运算式
   self.show['text'] = self.show['text'] + event.widget['text']
  elif(event.widget['text'] == '=' and self.show['text'] is not None):
   # 赋值给self.hi
   self.hi = self.show['text']
   # 其实这一步可以不要,主要作用是在调试时可以在后台看输入的数据
   print(self.hi)
   # 使用eval函数计算表达式的值
   self.show['text'] = str(eval(self.hi))
   self.hi = None
   self.i = 0
 # 点击↺(恢复)按钮时,程序清空计算结果、将表达式设为None
 def clean(self, event):
  self.hi = None
  self.show['text'] = ''
root = Tk()
root.title("简单科学计算器")
App(root)
root.mainloop()

小知识:

python编写计算器功能

效果如图

python编写计算器功能

结语:

如果有不理解的地方欢迎留言

本文参考疯狂python讲义

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

Python 相关文章推荐
用Python登录Gmail并发送Gmail邮件的教程
Apr 17 Python
python函数形参用法实例分析
Aug 04 Python
用python写的一个wordpress的采集程序
Feb 27 Python
python实现中文转换url编码的方法
Jun 14 Python
django中使用Celery 布式任务队列过程详解
Jul 29 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
Python爬虫使用代理IP的实现
Oct 27 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 Python
使用numpngw和matplotlib生成png动画的示例代码
Jan 24 Python
Python 中的Sympy详细使用
Aug 07 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 Python
Python实现快速排序的方法详解
Oct 25 #Python
python实现超市商品销售管理系统
Oct 25 #Python
Python列表元素常见操作简单示例
Oct 25 #Python
python实现超市管理系统(后台管理)
Oct 25 #Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 #Python
python+mysql实现个人论文管理系统
Oct 25 #Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 #Python
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php自定义加密与解密程序实例
2014/12/31 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
python服务器与android客户端socket通信实例
2014/11/12 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
成龙洗发水广告词
2014/03/14 职场文书
爱心捐款倡议书
2014/04/14 职场文书
铁路安全事故反思
2014/04/26 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
作风整顿剖析材料
2014/09/30 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书