网络编程
位置:首页>> 网络编程>> Python编程>> Python实现的计算器功能示例

Python实现的计算器功能示例

作者:tian_shl  发布时间:2023-02-16 22:25:30 

标签:Python,计算器

本文实例讲述了Python实现的计算器功能。分享给大家供大家参考,具体如下:

源码:


# -*- coding:utf-8 -*-
#! python2
from tkinter import *
__author__ = 'tianshl'
__date__ = '2017/10/16'
class Application(Frame):
def __init__(self):
 Frame.__init__(self)
 self.grid()
 self.mem = ''    # 内存中的数据
 self.opt = ''    # 操作符
 self.display = StringVar() # 显示的数据
 self.display.set('0')  # 初始值
 self.need_cls = False  # 是否需要清屏
 self.create_widgets()
# 清空
def clear(self):
 self.mem = ''
 self.display.set('0')
# 取反
def negative(self):
 self.display.set(eval('-' + self.display.get()))
# 四则运算
def option(self, opt):
 if not self.need_cls:
  self.calculate()
 self.opt = opt
 self.need_cls = True
 self.mem = self.display.get()
# 计算结果
def calculate(self):
 if self.opt:
  try:
   self.display.set(eval(self.mem + self.opt + self.display.get()))
  except Exception:
   self.display.set('错误')
   self.need_cls = True
  self.opt = ''
  self.mem = ''
# 百分比
def percent(self):
 base = float(self.mem or 1) / 100
 display = eval('{}*{}'.format(self.display.get(), base))
 int_display = int(display)
 display = int_display if display == int_display else display
 self.display.set(display)
 self.need_cls = True
# 输入
def input(self, key):
 if self.need_cls:
  self.display.set('0')
  self.need_cls = False
 display = self.display.get()
 if display == '0' and key != '.':
  self.display.set(key)
 else:
  if '.' in display and key == '.':
   return
  self.display.set(display + key)
# 创建组件
def create_widgets(self):
 # 显示框
 Entry(self, textvariable=self.display, state="readonly", width=35).grid(
  row=0, column=0, columnspan=4)
 # 键盘
 keyboards = [
  ['C', '+/-', '%', '/'],
  ['7', '8', '9', '*'],
  ['4', '5', '6', '-'],
  ['1', '2', '3', '+'],
  ['0', '.', '=']
 ]
 for row, keys in enumerate(keyboards):
  row_num = 3 + row
  for col, key in enumerate(keys):
   if key == 'C':
    command = self.clear
   elif key == '+/-':
    command = self.negative
   elif key == '%':
    command = self.percent
   elif key in ['+', '-', '*', '/']:
    command = lambda s=key: self.option(s)
   elif key == '=':
    command = self.calculate
   else:
    command = lambda s=key: self.input(s)
   bt = Button(self, text=key, command=command, width=6)
   bt.grid(row=row_num, column=col)
app = Application()
# 设置窗口标题:
app.master.title('www.jb51.net - 计算器')
# 设置窗口尺寸/位置
app.master.geometry("326x170+200+200")
# 设置窗口不可变
app.master.resizable(width=False, height=False)
# 主消息循环:
app.mainloop()

运行效果:

Python实现的计算器功能示例

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

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

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

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

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

来源:https://blog.csdn.net/xiaobuding007/article/details/78267773

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com