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中使用pngquant压缩png图片的教程
Apr 09 Python
Python中Continue语句的用法的举例详解
May 14 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python实现简易Web爬虫详解
Jan 03 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
详解python的四种内置数据结构
Mar 19 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
Python基于pandas爬取网页表格数据
May 11 Python
python操作toml文件的示例代码
Nov 27 Python
python实现求纯色彩图像的边框
Apr 08 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数组合并array_merge()函数使用注意事项
2014/06/19 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
js 获取、清空input type="file"的值示例代码
2014/02/19 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python CSV模块使用实例
2015/04/09 Python
Django中的Signal代码详解
2018/02/05 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
python如何生成网页验证码
2018/07/28 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
国贸专业的职业规划书
2014/03/15 职场文书
融资租赁计划书
2014/04/29 职场文书
保险公司演讲稿
2014/09/02 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
各国货币符号大全
2022/02/17 杂记
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
Elasticsearch 索引操作和增删改查
2022/04/19 Python