Python开发的实用计算器完整实例


Posted in Python onMay 10, 2017

本文实例讲述了Python开发的实用计算器。分享给大家供大家参考,具体如下:

实现功能:图形界面PyQt,输入框,+,—,*,/ ;乘方 ,开方 ,取余,清零。

1. Python代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Author : Mr.LiuYC
Created on 2014-09-30
E-Mail : liuyanchen0725@gmail.com
Introduction: 简易计算器 实现图形界面PyQt,输入框,+,—,*,/ ;乘方 ,开方 ,取余,清零。
'''
from PyQt4 import QtGui,QtCore
import sys , math , string
class Example(QtGui.QWidget):
  def __init__(self,parent=None):
    QtGui.QWidget.__init__(self,parent=parent)
    self.initUI()
    self.last = []
  def initUI(self):
    list = ['%','**','sqrt','C',7,8,9,'+',4,5,6,'-',1,2,3,'*',0,'.','=','/']
    length = len(list)
    for i in xrange(length):
      self.button = QtGui.QPushButton(str(list[i]),self)
      self.button.clicked.connect(self.onButtonClick)
      x = i % 4
      y = i / 4
      self.button.move(x * 40 + 10,y * 40 + 90)
      self.button.resize(30,30)
    self.lineEdit = QtGui.QLineEdit('',self)
    self.lineEdit.move(10,10)
    self.lineEdit.resize(150,70)
    self.setGeometry(200, 200, 170, 300)
    self.setWindowTitle('Quit buttom')
    self.show()
  def onButtonClick(self):
    t = self.lineEdit.text()
    new = self.sender().text()
    self.last.append(new)
    print self.last
    self.lineEdit.setText(t+new)
    if new == '=':
      result = eval(str(t))
      self.lineEdit.setText(str(result))
    if new == 'C':
      self.lineEdit.setText('')
    if new == 'sqrt':
      self.lineEdit.setText('')
      result = math.sqrt(string.atof(t))
      self.lineEdit.setText(str(result))
if __name__ == '__main__':
  app = QtGui.QApplication(sys.argv)
  e = Example()
  sys.exit(app.exec_())

2. calculator.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Author : Mr.LiuYC
Created on 2014-09-30
E-Mail : liuyanchen0725@gmail.com
Introduction: 简易计算器 实现图形界面PyQt,输入框,+,—,*,/ ;乘方 ,开方 ,取余,清零。
'''
from PyQt4 import QtGui,QtCore
import sys , math , string
class Example(QtGui.QWidget):
  def __init__(self,parent=None):
    QtGui.QWidget.__init__(self,parent=parent)
    self.initUI()
    self.last = []
  def initUI(self):
    list = ['%','**','sqrt','C',7,8,9,'+',4,5,6,'-',1,2,3,'*',0,'.','=','/']
    length = len(list)
    for i in xrange(length):
      self.button = QtGui.QPushButton(str(list[i]),self)
      self.button.clicked.connect(self.onButtonClick)
      x = i % 4
      y = i / 4
      self.button.move(x * 40 + 10,y * 40 + 90)
      self.button.resize(30,30)
    self.lineEdit = QtGui.QLineEdit('',self)
    self.lineEdit.move(10,10)
    self.lineEdit.resize(150,70)
    self.setGeometry(200, 200, 170, 300)
    self.setWindowTitle('Quit buttom')
    self.show()
  def onButtonClick(self):
    t = self.lineEdit.text()
    new = self.sender().text()
    self.last.append(new)
    print self.last
    self.lineEdit.setText(t+new)
    if new == '=':
      result = eval(str(t))
      self.lineEdit.setText(str(result))
    if new == 'C':
      self.lineEdit.setText('')
    if new == 'sqrt':
      self.lineEdit.setText('')
      result = math.sqrt(string.atof(t))
      self.lineEdit.setText(str(result))
if __name__ == '__main__':
  app = QtGui.QApplication(sys.argv)
  e = Example()
  sys.exit(app.exec_())

3. 运行效果图如下:

Python开发的实用计算器完整实例

Python开发的实用计算器完整实例

Python开发的实用计算器完整实例

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

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

科学计算器在线使用_高级计算器在线计算:
http://tools.3water.com/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.3water.com/jisuanqi/jsq

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

Python 相关文章推荐
python使用urllib2提交http post请求的方法
May 26 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
python3音乐播放器简单实现代码
Apr 20 Python
详解Python如何获取列表(List)的中位数
Aug 12 Python
windows 下python+numpy安装实用教程
Dec 23 Python
Python 实现王者荣耀中的敏感词过滤示例
Jan 21 Python
django的ORM模型的实现原理
Mar 04 Python
python实现通过flask和前端进行数据收发
Aug 22 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
python爬虫之爬取笔趣阁小说
Apr 22 Python
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
Oct 16 Python
Python只用40行代码编写的计算器实例
May 10 #Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 #Python
python 3.5下xadmin的使用及修复源码bug
May 10 #Python
Python遍历文件夹和读写文件的实现方法
May 10 #Python
python中requests小技巧
May 10 #Python
Python实现针对中文排序的方法
May 09 #Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 #Python
You might like
缅甸的咖啡简史
2021/03/04 咖啡文化
php 常用类整理
2009/12/23 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
JS按字节截取字符长度实例
2013/11/20 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python中暂存上传图片的方法
2015/02/18 Python
Python中特殊函数集锦
2015/07/27 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
关爱留守儿童标语
2014/06/18 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
工程项目合作意向书
2015/05/08 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
如何使用php生成zip压缩包
2021/04/21 PHP
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
Python实现抖音热搜定时爬取功能
2022/03/16 Python