python 基于 tkinter 做个学生版的计算器

yizhihongxing

Python基于tkinter做学生版的计算器

前言

Tkinter是Python内置的GUI工具包,可以用来制作各种窗口应用程序。在本篇攻略中,我们将使用Tkinter工具包来制作一款学生版的计算器,主要用于学生的简单计算。

界面设计

这里我们使用Tkinter内置的组件来完成计算器的UI设计,包括一个文本框和若干个按钮。其中文本框用于显示计算结果,按钮用于响应用户操作。

我们需要创建一个主窗口,并在窗口中添加一个文本框和若干个按钮。具体实现方式如下:

import tkinter as tk

root = tk.Tk()
root.title("学生版计算器")

text = tk.Entry(root, width=50, borderwidth=5, justify='right')
text.grid(row=0, column=0, columnspan=4, padx=10, pady=10)

button_1 = tk.Button(root, text="1", padx=40, pady=20, command=lambda: button_click(1))
button_2 = tk.Button(root, text="2", padx=40, pady=20, command=lambda: button_click(2))
button_3 = tk.Button(root, text="3", padx=40, pady=20, command=lambda: button_click(3))
button_4 = tk.Button(root, text="4", padx=40, pady=20, command=lambda: button_click(4))
button_5 = tk.Button(root, text="5", padx=40, pady=20, command=lambda: button_click(5))
button_6 = tk.Button(root, text="6", padx=40, pady=20, command=lambda: button_click(6))
button_7 = tk.Button(root, text="7", padx=40, pady=20, command=lambda: button_click(7))
button_8 = tk.Button(root, text="8", padx=40, pady=20, command=lambda: button_click(8))
button_9 = tk.Button(root, text="9", padx=40, pady=20, command=lambda: button_click(9))
button_0 = tk.Button(root, text="0", padx=40, pady=20, command=lambda: button_click(0))
button_add = tk.Button(root, text="+", padx=39, pady=20, command=button_add)
button_subtract = tk.Button(root, text="-", padx=41, pady=20, command=button_subtract)
button_multiply = tk.Button(root, text="*", padx=40, pady=20, command=button_multiply)
button_divide = tk.Button(root, text="/", padx=41, pady=20, command=button_divide)
button_clear = tk.Button(root, text="清空", padx=30, pady=20, command=button_clear)
button_equals = tk.Button(root, text="=", padx=91, pady=20, command=button_equals)

button_1.grid(row=1, column=0)
button_2.grid(row=1, column=1)
button_3.grid(row=1, column=2)

button_4.grid(row=2, column=0)
button_5.grid(row=2, column=1)
button_6.grid(row=2, column=2)

button_7.grid(row=3, column=0)
button_8.grid(row=3, column=1)
button_9.grid(row=3, column=2)

button_0.grid(row=4, column=0)
button_clear.grid(row=4, column=1)
button_equals.grid(row=4, column=2, columnspan=2)

button_add.grid(row=5, column=0)
button_subtract.grid(row=6, column=0)
button_multiply.grid(row=6, column=1)
button_divide.grid(row=6, column=2)

# 主循环
root.mainloop()

主要实现的功能:
1. 创建主窗口
2. 创建文本框
3. 创建若干个Button按钮,并为其设置响应事件
4. 将所有的按钮按照布局放置到主窗口上

计算器逻辑

计算器的实现,核心是要完成简单的数学计算,我们通过使用Python对字符串运算表达式求值的函数eval(),来实现计算器的逻辑。

响应事件函数

我们需要为计算器中的每个按钮定义响应事件函数,具体实现方式如下:

def button_click(number):
    current = text.get()
    text.delete(0, tk.END)
    text.insert(0, str(current) + str(number))

def button_clear():
    text.delete(0, tk.END)

def button_add():
    first_number = text.get()
    global f_num
    global math
    math = "addition"
    f_num = int(first_number)
    text.delete(0, tk.END)

def button_subtract():
    first_number = text.get()
    global f_num
    global math
    math = "subtraction"
    f_num = int(first_number)
    text.delete(0, tk.END)

def button_multiply():
    first_number = text.get()
    global f_num
    global math
    math = "multiplication"
    f_num = int(first_number)
    text.delete(0, tk.END)

def button_divide():
    first_number = text.get()
    global f_num
    global math
    math = "division"
    f_num = int(first_number)
    text.delete(0, tk.END)

def button_equals():
    second_number = text.get()
    text.delete(0, tk.END)

    if math == "addition":
        text.insert(0, f_num + int(second_number))
    elif math == "subtraction":
        text.insert(0, f_num - int(second_number))
    elif math == "multiplication":
        text.insert(0, f_num * int(second_number))
    elif math == "division":
        text.insert(0, f_num / int(second_number))

实例说明

示例1

用户点击了数字“2”、“3”和“4”,然后点击了加号,接着又点击了数字“5”和“6”,最后点击了等号。计算器应该显示出34+56=90的计算结果。

示例2

用户点击了数字“1”、“2”、“3”和“4”,然后依次点击了减号、数字“5”和数字“6”,最后点击了等号。计算器应该显示出1234-56=1178的计算结果。

总结

通过本篇攻略的介绍,你已经掌握了如何使用Python语言以及Tkinter工具包来开发一个简单的计算器应用。希望这篇文章可以对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 基于 tkinter 做个学生版的计算器 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python实现的朴素贝叶斯算法经典示例【测试可用】

    Python实现的朴素贝叶斯算法经典示例【测试可用】详细攻略 朴素贝叶斯算法是一种常见分类算法,它基于贝叶斯定理和特征条件独立假设,可以用于文本分类、圾邮件过滤、情感分析等领域。在本文中,我们将介绍Python实现的朴素贝叶斯算法经典示例,并提供测试代码。 朴素贝叶斯算法原理 朴素贝叶斯算法是一种基于贝叶斯定理的分类算法,它假设每个特征之间是相互独立的,即特…

    python 2023年5月14日
    00
  • 用python做游戏的细节详解

    用Python做游戏的细节详解 概述 Python是一门多用途的编程语言,除了数据分析和Web开发,我们还可以使用它来开发游戏。Python有许多适用于游戏开发的库和工具,可以让我们轻松地创建各种类型的游戏,从简单的文字游戏到精美的3D游戏。 在本文中,我们将探讨一些Python游戏开发的细节,并提供一些示例说明,以帮助新手更轻松地上手。 游戏开发的准备工作…

    python 2023年6月6日
    00
  • python使用requests POST提交一个键多个值方式

    下面是关于Python使用requests POST提交一个键多个值的完整攻略。 什么是POST请求和多值提交? POST请求是一种HTTP的请求方法,与GET请求相对应,用于在HTTP上向指定的资源提交数据。 多值提交则是指在提交POST请求时,表单的某个键(key)对应了多个值(value)。 使用requests库发送POST请求 使用Python的r…

    python 2023年6月3日
    00
  • 详解Python 使用 selenium 进行自动化测试或者协助日常工作

    详解Python使用Selenium进行自动化测试或者协助日常工作 什么是Selenium Selenium 是一个用于浏览器自动化的工具。它支持多种浏览器,包括但不限于 Chrome、Firefox 和 Safari。它可以用于自动化测试,网站自动化,以及协助日常工作任务等。 如何安装和配置 Selenium 在使用 Selenium 之前,需要安装 Se…

    python 2023年5月19日
    00
  • python 利用正则表达式提取特殊信息

    Python利用正则表达式提取特殊信息 本攻略将详细讲解如何使用Python中的正则表达式来提取特殊信息,包括如何提取URL、邮箱地址、手机号码、身份证号码等常见信息。 提取URL 下面是一个例子,演示如何使用正则表达式提取URL: import re text = ‘Visit my website at http://www.example.com’ p…

    python 2023年5月14日
    00
  • python实现的web监控系统

    部署一个基于Python的Web监控系统,可以帮助我们监视网站或Web服务是否在线,是否出现问题,以及性能等指标数据。 以下是如何使用Python实现Web监控系统的完整攻略: 1.安装Python环境:如果您的机器没有安装Python环境,请下载Python,并安装在您的机器上。将Python添加到系统环境变量中,以便在终端中使用Python。 2.安装所…

    python 2023年5月30日
    00
  • 读写json中文ASCII乱码问题的解决方法

    以下是“读写json中文ASCII乱码问题的解决方法”的完整攻略: 问题 在读写json文件时,如果处理中文时会遇到中文字符被自动转换成ASCII码而出现乱码的情况。 原因 这是由于不同的编码格式所导致的。在处理中文字符时,一般会用到UTF-8编码格式,而JSON默认使用的是Unicode编码格式。在进行转换时,如果没有正确设置编码格式,就可能会出现ASCI…

    python 2023年5月20日
    00
  • python代码如何注释

    下面我就具体讲解一下「Python代码如何注释」的完整攻略。 为何需要注释 在编写代码时,随着程序逐渐增大,代码也会越来越复杂。为了方便自己和他人阅读和理解代码,加入适当的注释是必不可少的。 在 Python 中,注释主要有两种方式:单行注释和多行注释。 单行注释 单行注释即注释一行代码,使用“#”符号开始。在“#”符号后面写下注释内容即可。 # 这是一个单…

    python 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部