python课程设计计算器_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()

运行效果:

201842691152959.gif?20183269129

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值