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 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 Python
Python 含参构造函数实例详解
May 25 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
使用Python爬取Json数据的示例代码
Dec 07 Python
python 实现两个变量值进行交换的n种操作
Jun 02 Python
python中mongodb包操作数据库
Apr 19 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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python入门篇之正则表达式
2014/10/20 Python
python中as用法实例分析
2015/04/30 Python
快速了解Python相对导入
2018/01/12 Python
python实现微信远程控制电脑
2018/02/22 Python
python matlibplot绘制3D图形
2018/07/02 Python
python实现猜拳小游戏
2020/04/05 Python
python实现简单的购物程序代码实例
2020/03/03 Python
python三引号如何输入
2020/07/06 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
一名女生的自荐信
2013/12/08 职场文书
婚庆司仪主持词
2014/03/15 职场文书
社区交通安全实施方案
2014/03/22 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
员工开除通知书
2015/04/25 职场文书
建国大业观后感
2015/06/01 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
解决golang在import自己的包报错的问题
2021/04/29 Golang
Python 中 Shutil 模块详情
2021/11/11 Python