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异常学习笔记
Feb 03 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
python3使用urllib模块制作网络爬虫
Apr 08 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
Python3爬楼梯算法示例
Mar 04 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
选择python进行数据分析的理由和优势
Jun 25 Python
使用pandas读取文件的实现
Jul 31 Python
django haystack实现全文检索的示例代码
Jun 24 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 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程序时遇到的三个问题
2012/01/17 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
php命令行写shell实例详解
2018/07/19 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
python获取list下标及其值的简单方法
2016/09/12 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
python进程和线程用法知识点总结
2019/05/28 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python retrying模块的使用方法详解
2019/09/25 Python
Python底层封装实现方法详解
2020/01/22 Python
python中类与对象之间的关系详解
2020/12/16 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
英语硕士生求职简历的自我评价
2013/10/15 职场文书
现代化办公人员工作的自我评价
2013/10/16 职场文书
单身联谊活动方案
2014/01/29 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
党支部活动策划方案
2014/08/18 职场文书
感恩父母主题班会
2015/08/12 职场文书
Sql Server之数据类型详解
2022/02/28 SQL Server