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 文件和路径操作函数小结
Nov 23 Python
Python中删除文件的程序代码
Mar 13 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
python lxml中etree的简单应用
May 10 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
详解Python文件修改的两种方式
Aug 22 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
Django choices下拉列表绑定实例
Mar 13 Python
使用Keras预训练好的模型进行目标类别预测详解
Jun 27 Python
python实现学生管理系统开发
Jul 24 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 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 ctype函数中文翻译和示例
2014/03/21 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
javascript一点特殊用法
2008/05/28 Javascript
不安全的常用的js写法
2009/09/15 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
全面解析JavaScript中“&&”和“||”操作符(总结篇)
2016/07/18 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
python中scikit-learn机器代码实例
2018/08/05 Python
详解python3中的真值测试
2018/08/13 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python实现KNN分类算法
2019/10/16 Python
Python线程指南分享
2019/11/19 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
期末自我鉴定
2014/01/23 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
酒店宣传语大全
2015/07/13 职场文书
升学宴祝酒词
2015/08/11 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
我的收音机情缘
2022/04/05 无线电