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不规范的日期字符串处理类
Jun 10 Python
python生成日历实例解析
Aug 21 Python
python的多重继承的理解
Aug 06 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
python如何在循环引用中管理内存
Mar 20 Python
python 编写简单网页服务器的实例
Jun 01 Python
Django项目创建到启动详解(最全最详细)
Sep 07 Python
django中瀑布流写法实例代码
Oct 14 Python
python画图常规设置方式
Mar 05 Python
python同时遍历两个list用法说明
May 02 Python
python对execl 处理操作代码
Jun 22 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 变量类型的强制转换
2009/10/23 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
Python fileinput模块使用实例
2015/06/03 Python
python避免死锁方法实例分析
2015/06/04 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
带你认识Django
2019/01/15 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
解析python的局部变量和全局变量
2019/08/15 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
AmazeUI在模态框中嵌入表单形成模态输入框
2020/08/20 HTML / CSS
教师队伍管理制度
2014/01/14 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
公务员考察材料范文
2014/12/23 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书