python实现计算器简易版

(编辑:jimmy 日期: 2024/12/28 浏览:2)

Python计算器加减乘除,供大家参考,具体内容如下

1、效果图

python实现计算器简易版

2、代码

# coding=utf-8

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLCDNumber, QSlider, QVBoxLayout, qApp,   QMainWindow
from PyQt5.QtCore import Qt


class ForExample(QWidget):

  def __init__(self):
    super().__init__()
    #
    self.clu = 0.0
    # print('lx',type(self.clu))
    self.info = 0.0
    print(type(self.info))
    self.statusSUN = False
    self.statusPoint = False
    self.initUI()

  def initUI(self):

    # 网格布局
    grid = QGridLayout()
    self.setLayout(grid)

    # names = ['清除', '后退', '', '关闭',
    #     '7', '8', '9', '/',
    #     '4', '5', '6', '*',
    #     '1', '2', '3', '-',
    #     '0', '.', '=', '+']

    # 创建一个菜单栏
    # menubar = self.menuBar()
    # # 添加菜单
    # fileMenu = menubar.addMenu('&File')

    # LCD显示屏
    self.lcd = QLCDNumber(self)
    self.lcd.setDigitCount(9)
    self.lcd.isRightToLeft()
    self.lcd.display(self.info)
    grid.addWidget(self.lcd, 0, 0, 2, 4)

    # 清除
    bc = QPushButton('清除')
    bc.clicked.connect(self.def_bc)
    grid.addWidget(bc, 2, 0)

    # 后退
    bk = QPushButton('后退')
    bk.clicked.connect(self.def_bk)
    grid.addWidget(bk, 2, 1)

    # ca = QPushButton('计算')
    # ca.clicked.connect(self.def_bc)
    # grid.addWidget(ca, 2, 2)

    of = QPushButton('关闭')
    of.clicked.connect(qApp.quit)
    grid.addWidget(of, 2, 3)
    #
    b7 = QPushButton('7')
    b7.clicked.connect(self.def_b7)
    grid.addWidget(b7, 3, 0)

    b8 = QPushButton('8')
    b8.clicked.connect(self.def_b8)
    grid.addWidget(b8, 3, 1)

    b9 = QPushButton('9')
    b9.clicked.connect(self.def_b9)
    grid.addWidget(b9, 3, 2)

    b4 = QPushButton('4')
    b4.clicked.connect(self.def_b4)
    grid.addWidget(b4, 4, 0)

    b5 = QPushButton('5')
    b5.clicked.connect(self.def_b5)
    grid.addWidget(b5, 4, 1)

    b6 = QPushButton('6')
    b6.clicked.connect(self.def_b6)
    grid.addWidget(b6, 4, 2)

    bExcept = QPushButton('/')
    bExcept.clicked.connect(self.def_bExcept)
    grid.addWidget(bExcept, 3, 3)

    bMultiply = QPushButton('*')
    bMultiply.clicked.connect(self.def_bMultiply)
    grid.addWidget(bMultiply, 4, 3)

    b1 = QPushButton('1')
    b1.clicked.connect(self.def_b1)
    grid.addWidget(b1, 5, 0)

    b2 = QPushButton('2')
    b2.clicked.connect(self.def_b2)
    grid.addWidget(b2, 5, 1)

    b3 = QPushButton('3')
    b3.clicked.connect(self.def_b3)
    grid.addWidget(b3, 5, 2)

    bLess = QPushButton('-')
    bLess.clicked.connect(self.def_bLess)
    grid.addWidget(bLess, 5, 3)

    b0 = QPushButton('0')
    b0.clicked.connect(self.def_b0)
    grid.addWidget(b0, 6, 0)

    bPoint = QPushButton('.')
    bPoint.clicked.connect(self.def_bPoint)
    grid.addWidget(bPoint, 6, 1)

    bsun = QPushButton('+')
    bsun.clicked.connect(self.def_bsun)
    grid.addWidget(bsun, 6, 3)

    bsun = QPushButton('=')
    bsun.clicked.connect(self.def_bresult)
    grid.addWidget(bsun, 6, 2)

    self.setGeometry(300, 300, 250, 250)
    self.show()

  #############################################################
  def def_bc(self):

    self.info = 0
    self.clu = 0
    self.statusSUN = False
    self.lcd.display(self.info)

  def def_bk(self):

    if len(str(self.info)) > 1:
      self.info = int(str(self.info)[:-1])
    else:
      self.info = 0

    self.lcd.display(self.info)

  def def_b7(self):

    if self.info == 0:
      self.info = 7
    else:
      self.info = int(str(self.info) + '7')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b8(self):

    if self.info == 0:
      self.info = 8
    else:
      self.info = int(str(self.info) + '8')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b9(self):

    if self.info == 0:
      self.info = 9
    else:
      self.info = int(str(self.info) + '9')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 除
  def def_bExcept(self):
    pass

  def def_b4(self):

    if self.info == 0:
      self.info = 4
    else:
      self.info = int(str(self.info) + '4')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b5(self):

    if self.info == 0:
      self.info = 5
    else:
      self.info = int(str(self.info) + '5')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b6(self):

    if self.info == 0:
      self.info = 6
    else:
      self.info = int(str(self.info) + '6')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 乘
  def def_bMultiply(self):
    pass

  def def_b1(self):

    if self.info == 0:
      self.info = 1
    else:
      self.info = int(str(self.info) + '1')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b2(self):

    if self.info == 0:
      self.info = 2
    else:
      self.info = int(str(self.info) + '2')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b3(self):

    if self.info == 0:
      self.info = 3
    else:
      self.info = int(str(self.info) + '3')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 减
  def def_bLess(self):
    pass

  def def_b0(self):

    if self.info == 0:
      self.info = 0
    else:
      self.info = int(str(self.info) + '0')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_bPoint(self):
    if self.statusPoint:
      pass
    else:
      self.statusPoint = True

    if self.info == 0:
      self.info = 0.
    else:
      self.info = int(str(self.info) + '.')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 等于,根据self.status判断输入的计算符号
  def def_bresult(self):

    self.clu += self.info
    self.lcd.display(self.clu)
    self.statusSUN = False
    self.info = 0

  # 加
  def def_bsun(self):

    self.clu += self.info
    self.lcd.display(self.clu)
    self.statusSUN = True
    self.info = 0


if __name__ == '__main__':
  app = QApplication(sys.argv)
  fe = ForExample()
  sys.exit(app.exec_()) # coding=utf-8

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLCDNumber, QSlider, QVBoxLayout, qApp,   QMainWindow
from PyQt5.QtCore import Qt


class ForExample(QWidget):

  def __init__(self):
    super().__init__()
    #
    self.clu = 0.0
    # print('lx',type(self.clu))
    self.info = 0.0
    print(type(self.info))
    self.statusSUN = False
    self.statusPoint = False
    self.initUI()

  def initUI(self):

    # 网格布局
    grid = QGridLayout()
    self.setLayout(grid)

    # names = ['清除', '后退', '', '关闭',
    #     '7', '8', '9', '/',
    #     '4', '5', '6', '*',
    #     '1', '2', '3', '-',
    #     '0', '.', '=', '+']

    # 创建一个菜单栏
    # menubar = self.menuBar()
    # # 添加菜单
    # fileMenu = menubar.addMenu('&File')

    # LCD显示屏
    self.lcd = QLCDNumber(self)
    self.lcd.setDigitCount(9)
    self.lcd.isRightToLeft()
    self.lcd.display(self.info)
    grid.addWidget(self.lcd, 0, 0, 2, 4)

    # 清除
    bc = QPushButton('清除')
    bc.clicked.connect(self.def_bc)
    grid.addWidget(bc, 2, 0)

    # 后退
    bk = QPushButton('后退')
    bk.clicked.connect(self.def_bk)
    grid.addWidget(bk, 2, 1)

    # ca = QPushButton('计算')
    # ca.clicked.connect(self.def_bc)
    # grid.addWidget(ca, 2, 2)

    of = QPushButton('关闭')
    of.clicked.connect(qApp.quit)
    grid.addWidget(of, 2, 3)
    #
    b7 = QPushButton('7')
    b7.clicked.connect(self.def_b7)
    grid.addWidget(b7, 3, 0)

    b8 = QPushButton('8')
    b8.clicked.connect(self.def_b8)
    grid.addWidget(b8, 3, 1)

    b9 = QPushButton('9')
    b9.clicked.connect(self.def_b9)
    grid.addWidget(b9, 3, 2)

    b4 = QPushButton('4')
    b4.clicked.connect(self.def_b4)
    grid.addWidget(b4, 4, 0)

    b5 = QPushButton('5')
    b5.clicked.connect(self.def_b5)
    grid.addWidget(b5, 4, 1)

    b6 = QPushButton('6')
    b6.clicked.connect(self.def_b6)
    grid.addWidget(b6, 4, 2)

    bExcept = QPushButton('/')
    bExcept.clicked.connect(self.def_bExcept)
    grid.addWidget(bExcept, 3, 3)

    bMultiply = QPushButton('*')
    bMultiply.clicked.connect(self.def_bMultiply)
    grid.addWidget(bMultiply, 4, 3)

    b1 = QPushButton('1')
    b1.clicked.connect(self.def_b1)
    grid.addWidget(b1, 5, 0)

    b2 = QPushButton('2')
    b2.clicked.connect(self.def_b2)
    grid.addWidget(b2, 5, 1)

    b3 = QPushButton('3')
    b3.clicked.connect(self.def_b3)
    grid.addWidget(b3, 5, 2)

    bLess = QPushButton('-')
    bLess.clicked.connect(self.def_bLess)
    grid.addWidget(bLess, 5, 3)

    b0 = QPushButton('0')
    b0.clicked.connect(self.def_b0)
    grid.addWidget(b0, 6, 0)

    bPoint = QPushButton('.')
    bPoint.clicked.connect(self.def_bPoint)
    grid.addWidget(bPoint, 6, 1)

    bsun = QPushButton('+')
    bsun.clicked.connect(self.def_bsun)
    grid.addWidget(bsun, 6, 3)

    bsun = QPushButton('=')
    bsun.clicked.connect(self.def_bresult)
    grid.addWidget(bsun, 6, 2)

    self.setGeometry(300, 300, 250, 250)
    self.show()

  #############################################################
  def def_bc(self):

    self.info = 0
    self.clu = 0
    self.statusSUN = False
    self.lcd.display(self.info)

  def def_bk(self):

    if len(str(self.info)) > 1:
      self.info = int(str(self.info)[:-1])
    else:
      self.info = 0

    self.lcd.display(self.info)

  def def_b7(self):

    if self.info == 0:
      self.info = 7
    else:
      self.info = int(str(self.info) + '7')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b8(self):

    if self.info == 0:
      self.info = 8
    else:
      self.info = int(str(self.info) + '8')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b9(self):

    if self.info == 0:
      self.info = 9
    else:
      self.info = int(str(self.info) + '9')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 除
  def def_bExcept(self):
    pass

  def def_b4(self):

    if self.info == 0:
      self.info = 4
    else:
      self.info = int(str(self.info) + '4')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b5(self):

    if self.info == 0:
      self.info = 5
    else:
      self.info = int(str(self.info) + '5')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b6(self):

    if self.info == 0:
      self.info = 6
    else:
      self.info = int(str(self.info) + '6')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 乘
  def def_bMultiply(self):
    pass

  def def_b1(self):

    if self.info == 0:
      self.info = 1
    else:
      self.info = int(str(self.info) + '1')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b2(self):

    if self.info == 0:
      self.info = 2
    else:
      self.info = int(str(self.info) + '2')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_b3(self):

    if self.info == 0:
      self.info = 3
    else:
      self.info = int(str(self.info) + '3')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 减
  def def_bLess(self):
    pass

  def def_b0(self):

    if self.info == 0:
      self.info = 0
    else:
      self.info = int(str(self.info) + '0')

    self.statusSUN = False
    self.lcd.display(self.info)

  def def_bPoint(self):
    if self.statusPoint:
      pass
    else:
      self.statusPoint = True

    if self.info == 0:
      self.info = 0.
    else:
      self.info = int(str(self.info) + '.')

    self.statusSUN = False
    self.lcd.display(self.info)

  # 等于,根据self.status判断输入的计算符号
  def def_bresult(self):

    self.clu += self.info
    self.lcd.display(self.clu)
    self.statusSUN = False
    self.info = 0

  # 加
  def def_bsun(self):

    self.clu += self.info
    self.lcd.display(self.clu)
    self.statusSUN = True
    self.info = 0


if __name__ == '__main__':
  app = QApplication(sys.argv)
  fe = ForExample()
  sys.exit(app.exec_())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

一句话新闻

微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。