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下如何让web元素的生成更简单的分析
Jul 17 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
Python基于Tkinter模块实现的弹球小游戏
Dec 27 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
numpy求平均值的维度设定的例子
Aug 24 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 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
php中序列化与反序列化详解
2017/02/13 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
js 提交和设置表单的值
2008/12/19 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
vue中v-model的应用及使用详解
2018/06/27 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中统计函数运行耗时的方法
2015/05/05 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
后勤自我鉴定
2013/10/13 职场文书
毕业学生推荐信
2013/12/01 职场文书
演讲稿开场白
2014/01/13 职场文书
京剧自荐信
2014/01/26 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
北京英语导游词
2015/02/12 职场文书
2015年教师节慰问信
2015/03/23 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android