Python开发的实用计算器完整实例

发布时间 - 2026-01-11 01:03:57    点击率:

本文实例讲述了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. 运行效果图如下:

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools./jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools./jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools./jisuanqi/jsq

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python  # 计算器  # python 简易计算器程序  # 代码就几行  # Python实现简单的四则运算计算器  # 基于python的Tkinter实现一个简易计算器  # python实现简易版计算器  # 仅用50行代码实现一个Python编写的计算器的教程  # Python只用40行代码编写的计算器实例  # Python设计实现的计算器功能完整实例  # Python+tkinter使用80行代码实现一个计算器实例  # 用python实现一个简单计算器(完整DEMO)  # 输入框  # 清零  # 进阶  # 操作技巧  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 更多关于  # 所述  # 几款  # 程序设计  # 使用技巧  # 再为  # 讲述了  # sys  # QtCore  # math  # QWidget  # string 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  如何在IIS服务器上快速部署高效网站?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  如何自定义建站之星网站的导航菜单样式?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  JavaScript常见的五种数组去重的方式  Linux网络带宽限制_tc配置实践解析【教程】  实现点击下箭头变上箭头来回切换的两种方法【推荐】  历史网站制作软件,华为如何找回被删除的网站?  JavaScript如何实现倒计时_时间函数如何精确控制  黑客如何利用漏洞与弱口令入侵网站服务器?  在centOS 7安装mysql 5.7的详细教程  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何用AWS免费套餐快速搭建高效网站?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  如何在阿里云服务器自主搭建网站?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  高防服务器租用如何选择配置与防御等级?  EditPlus中的正则表达式实战(6)  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel Session怎么存储_Laravel Session驱动配置详解  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  如何在橙子建站中快速调整背景颜色?  JS实现鼠标移上去显示图片或微信二维码  Laravel如何记录自定义日志?(Log频道配置)  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Android自定义控件实现温度旋转按钮效果  详解MySQL数据库的安装与密码配置  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Android仿QQ列表左滑删除操作  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Android GridView 滑动条设置一直显示状态(推荐)  linux写shell需要注意的问题(必看)  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Linux系统命令中tree命令详解  奇安信“盘古石”团队突破 iOS 26.1 提权