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 相关文章推荐
django rest framework之请求与响应(详解)
Nov 06 Python
python的exec、eval使用分析
Dec 11 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
python如何读写csv数据
Mar 21 Python
详解Python中is和==的区别
Mar 21 Python
seek引发的python文件读写的问题及解决
Jul 26 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
Python ORM编程基础示例
Feb 02 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
python isinstance函数用法详解
Feb 13 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
python爬取天气数据的实例详解
Nov 20 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
js下用gb2312编码解码实现方法
2009/12/31 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
幼儿园义卖活动方案
2014/01/17 职场文书
中国好声音华少广告词
2014/03/17 职场文书
初中生评语大全
2014/04/24 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
申报材料格式
2014/12/30 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android