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中实现一个高性能计数器(Counter)实例
Jul 09 Python
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 Python
pyqt5简介及安装方法介绍
Jan 31 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
parser.add_argument中的action使用
Apr 20 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
django使用graphql的实例
Sep 02 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
php下实现农历日历的代码
2007/03/07 PHP
PHP代码优化的53个细节
2014/03/03 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
python基础教程项目二之画幅好画
2018/04/02 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
售后服务科岗位职责范文
2013/11/13 职场文书
土木工程个人自荐信范文
2013/11/30 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
运动员加油词
2015/07/18 职场文书
师德培训心得体会2016
2016/01/09 职场文书
mysql知识点整理
2021/04/05 MySQL
图神经网络GNN算法
2022/05/11 Python