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批量导出导入MySQL用户的方法
Nov 15 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
一篇文章快速了解Python的GIL
Jan 12 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
Sublime开发python程序的示例代码
Jan 24 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python3.6实现连接mysql或mariadb的方法分析
May 18 Python
python实现求特征选择的信息增益
Dec 18 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python函数中将变量名转换成字符串实例
May 11 Python
python3中calendar返回某一时间点实例讲解
Nov 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
php daodb插入、更新与删除数据
2009/03/19 PHP
PHP基础学习小结
2011/04/17 PHP
php UBB 解析实现代码
2011/11/27 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
js闭包实例汇总
2014/11/09 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
详解React native fetch遇到的坑
2018/08/30 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
详细介绍Ruby中的正则表达式
2015/04/10 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python二维键值数组生成转json的例子
2019/12/06 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
美国鲜花递送:UrbanStems
2021/01/04 全球购物
生物科学系大学生的自我评价
2013/12/20 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
总会计师岗位职责
2014/02/19 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
工厂见习报告范文
2014/10/31 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
docker 制作mysql镜像并自动安装
2022/05/20 Servers