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实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
Python中作用域的深入讲解
Dec 10 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
python如何通过twisted搭建socket服务
Feb 03 Python
Django如何使用redis作为缓存
May 21 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
通过代码简单了解django model序列化作用
Nov 12 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 Python
python超详细实现完整学生成绩管理系统
Mar 17 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
无限级别菜单的实现
2006/10/09 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python通过正则表达式选取callback的方法
2015/07/18 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
一名毕业生的自我鉴定
2013/12/04 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2014年销售部工作总结
2014/12/01 职场文书
银行求职自荐信范文
2015/03/04 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python