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使用Socket(Https)Post登录百度的实现代码
May 18 Python
Python set集合类型操作总结
Nov 07 Python
Python二分查找详解
Sep 13 Python
python中异常捕获方法详解
Mar 03 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
django 自定义过滤器的实现
Feb 26 Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 Python
大数据分析用java还是Python
Jul 06 Python
python利用后缀表达式实现计算器功能
Feb 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
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python 存取npy格式数据实例
2020/07/01 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
DNA基因检测和分析:23andMe
2019/05/01 全球购物
人力资源专业推荐信
2013/11/29 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
安全生产宣传标语
2014/06/06 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
修辞手法有哪些?
2019/08/29 职场文书