python tkinter实现简单计算器功能

本文实例为大家分享了python tkinter实现简单计算器的具体代码,供大家参考,具体内容如下

效果图

直接上代码

import tkinter as tk

input_num_ls = []
first_num = None
calculator_method = None

def get_num(ls):

    new_ls = [10 ** i * float(num) for i, num in enumerate(ls)]

    ls_sum = sum(new_ls)

    if int(ls_sum) == ls_sum:
        return int(ls_sum)
    
    else:
        return ls_sum

def append_num(num):
    global input_num_ls
    if len(num) < 10:
        input_num_ls.append(num)
    else:
        input_num_ls.append(num[:10])

    current_value.set(get_num(input_num_ls))

    print(input_num_ls)

def append_calculator(method):
    global input_num_ls, first_num, calculator_method
    calculator_method = method
    first_num = get_num(input_num_ls)
    input_num_ls = []
    print('method', calculator_method)

def calculator_result():
    global first_num, input_num_ls, calculator_method

    second_num = get_num(input_num_ls)

    input_num_ls.clear()

    if calculator_method == '+':
        current_value.set(second_num + first_num)
        input_num_ls.append(str(second_num + first_num))

    elif calculator_method == '-':
        current_value.set(first_num - second_num)
        input_num_ls.append(str(first_num - second_num))

    elif calculator_method == '*':
        current_value.set(first_num * second_num)
        input_num_ls.append(str(second_num * first_num))

    elif calculator_method == '/':
        current_value.set(first_num / second_num)
        input_num_ls.append(str(first_num / second_num))

    print(first_num, second_num, calculator_method)

def clear():
    global first_num, input_num_ls, calculator_method
    first_num = None
    input_num_ls = []
    calculator_method = None
    current_value.set(0)

def func():
    pass

# 主体窗口
window = tk.Tk()

# 设置窗口 标题
window.title('简易计算器')

# 设置窗口 宽高
window.geometry('400x300')

# 添加user显示屏幕背景
screen_area = tk.Frame(width='400', height='100', bg='#ddd')
# 放置到window中
screen_area.pack()

# 示例设置显示的数据类
current_value = tk.StringVar()
current_value.set(0)

# 数字显示框
# anchor  文本相对于标签中心的位置   默认是center N S W E
show_screen_label = tk.Label(screen_area, textvariable=current_value, bg='white', width='400', height='2', font={'黑体', 40, 'bold'}, anchor='e')
show_screen_label.pack(padx=10, pady=6)

# 按键区域
button_area = tk.Frame(width='300', height='300', bg='#ccc')
button_area.pack(padx=10, pady=5)

# 添加button
tk.Button(button_area, text='C', width='5', height='1', command=lambda: clear()).grid(row='1', column='0')
tk.Button(button_area, text='+', width='5', height='1', command=lambda: append_calculator('+')).grid(row='1', column='1')
tk.Button(button_area, text='-', width='5', height='1', command=lambda: append_calculator('-')).grid(row='1', column='2')
tk.Button(button_area, text='*', width='5', height='1', command=lambda: append_calculator('*')).grid(row='1', column='3')
tk.Button(button_area, text='7', width='5', height='1', command=lambda: append_num('7')).grid(row='2', column='0')
tk.Button(button_area, text='8', width='5', height='1', command=lambda: append_num('8')).grid(row='2', column='1')
tk.Button(button_area, text='9', width='5', height='1', command=lambda: append_num('9')).grid(row='2', column='2')
tk.Button(button_area, text='/', width='5', height='1', command=lambda: append_calculator('/')).grid(row='2', column='3')
tk.Button(button_area, text='4', width='5', height='1', command=lambda: append_num('4')).grid(row='3', column='0')
tk.Button(button_area, text='5', width='5', height='1', command=lambda: append_num('5')).grid(row='3', column='1')
tk.Button(button_area, text='6', width='5', height='1', command=lambda: append_num('6')).grid(row='3', column='2')
tk.Button(button_area, text='=', width='5', height='1', command=lambda: calculator_result()).grid(row='3', column='3')
tk.Button(button_area, text='1', width='5', height='1', command=lambda: append_num('1')).grid(row='4', column='0')
tk.Button(button_area, text='2', width='5', height='1', command=lambda: append_num('2')).grid(row='4', column='1')
tk.Button(button_area, text='3', width='5', height='1', command=lambda: append_num('3')).grid(row='4', column='2')
tk.Button(button_area, text='C', width='5', height='1', command=lambda: clear()).grid(row='4', column='3')

window.mainloop()

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

(0)

相关推荐

  • Python编程使用tkinter模块实现计算器软件完整代码示例

    Python 提供了多个图形开发界面的库.Tkinter就是其中之一. Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里.Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. 该计算器使用Python tkinter模块开发 效果如下图 import tkinter #导入tkinter模块 root = t

  • python使用tkinter实现简单计算器

    本文实例为大家分享了python使用tkinter实现简单计算器的具体代码,供大家参考,具体内容如下 class Counter: #引入tkinter import tkinter as tk #引入消息弹窗模块 import tkinter.messagebox as mbox #初始化Counter def __init__(self): #生成一个窗口对象 self.window = self.tk.Tk() #命名窗口对象的显示title self.window.title('计算器'

  • Python tkinter实现计算器功能

    本文实例为大家分享了vue + element ui实现锚点定位的具体代码,供大家参考,具体内容如下 python版本:3.5 一.计算器的功能描述 今天我们用python来实现一个计算器.首先,计算器分为两部分:一部分是初级页面,包括简单的加减乘除四则运算.第二部分:是高级页面,包括常见的三角函数.对数.括号.等参数运算.其次,在初级页面,能进行简单的初级运算,并在初级页面设置高级按钮,并让其高亮显示,用户点击高级按钮后,会切换到高级页面.来到高级页面,让扩展的功能高亮显示,同时可以参加高级运

  • 基于python的Tkinter实现一个简易计算器

    本文实例介绍了基于python的Tkinter实现简易计算器的详细代码,分享给大家供大家参考,具体内容如下 第一种:使用python 的 Tkinter实现一个简易计算器 #coding:utf-8 from Tkinter import * import time root = Tk() def cacl(input_str): if "x" in input_str: ret = input_str.split("x") return int(ret[0]) *

  • Python+tkinter使用80行代码实现一个计算器实例

    本文主要探索的是使用Python+tkinter编程实现一个简单的计算器代码示例,具体如下. 闲话不说,直奔主题.建议大家跟着敲一遍代码,体会一下代码复用.字符串方法的运用和动态创建组件的妙处,然后在这个框架的基础上进行补充和发挥. 选择任何一款Python开发环境,创建一个程序文件,命名为tkinter_Calculator.pyw,然后编写下面的代码: 1)导入标准库re和tkinter,创建并简单设置应用主程序,在窗口顶部放置一个只读的文本框用来显示信息. 2)编写计算器上各种按钮的通用处

  • 如何利用python的tkinter实现一个简单的计算器

    做一个计算器,这是我想要达成的效果: 在按下按钮或者按下键盘的时候,第一行输入框会显示输入的内容,第二行显示框则会预览运算结果,如果发生异常,输入内容格式错误,无法计算,则显示框显示"错误". 按"="按钮或按键回车计算结果,结果显示在第一行. 1.准备工作 导入库 tkinter import tkinter as tk 2. 开始 定义两个变量: equal_is=False #定义一些变量 textchange='' equal_is 用于判断是否已经计算出结

  • 利用Tkinter(python3.6)实现一个简单计算器

    前言 上机实践课程开始了,嗯,老师来了之后念了下PPT,然后说:开始做吧......... 然后就开始了Python的GUI之路,以前没接触过PYthon的可视化界面(虽然这样很不明智) 但是现在做起来感觉写小工具还挺方便的,当时搜到的第一个库便是Tkinter就直接开始写了 后来发现QT很不错的样子,下个实验就用QT吧.然后关于Tkinter(python3.6) 计算器源码 ennn.....有的命名不规范....... 首先对于python中栈的实现是通过list的方式模拟 pop()出栈

  • Python Tkinter实现简易计算器功能

    闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的,使用偏函数可以简化参数传递,避免同样的参数传递写N次. # -*- coding: utf-8 -*- #author: Cullen #import the module from Tkinter import * import tkFont import os from functools im

  • Python tkinter实现简单加法计算器代码实例

    tkinter 是 Python 的标准 GUI 库.Python 使用 tkinter 可以快速的创建 GUI 应用程序.由于 tkinter 是内置到 python 的安装包中.只要安装好 Python 之后就能 import tkinter 库.而且 IDLE 也是用 tkinter 编写而成.对于简单的图形界面 tkinter 还是能应付自如. 代码如下 from tkinter import * def Calculate(): a1 = int(text1.get('1.0', EN

  • Python+tkinter使用40行代码实现计算器功能

    本文实例为大家分享了40行Python代码实现计算器功能,供大家参考,具体内容如下 偶尔用脚本写点东西也是不错的. 效果图 代码 from tkinter import * reset=True def buttonCallBack(event): global label global reset num=event.widget['text'] if num=='C': label['text']="0" return if num in "=": label[

随机推荐