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 01 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
python插入数据到列表的方法
Apr 30 Python
python比较2个xml内容的方法
May 11 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
python实现二叉查找树实例代码
Feb 08 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
Python面向对象之类和对象实例详解
Dec 10 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
分析运行中的 Python 进程详细解析
Jun 22 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 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/03/29 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
微信小程序模板和模块化用法实例分析
2017/11/28 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
python中map的基本用法示例
2018/09/10 Python
Python Celery多队列配置代码实例
2019/11/22 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python调用摄像头的示例代码
2020/09/28 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
先进工作者申报材料
2014/12/23 职场文书
决心书格式范文
2015/09/23 职场文书