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中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
python实现微信接口(itchat)详细介绍
Oct 23 Python
Python实现的HMacMD5加密算法示例
Apr 03 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 Python
python requests.post带head和body的实例
Jan 02 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
解析python中的jsonpath 提取器
Jan 18 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
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
js 获取、清空input type="file"的值(示例代码)
2013/12/24 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
vue router demo详解
2017/10/13 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python操作excel让工作自动化
2019/08/09 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
编写strcpy函数
2014/06/24 面试题
审计工作个人的自我评价
2013/12/25 职场文书
单身联谊活动方案
2014/01/29 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
七年级思品教学反思
2016/02/20 职场文书