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

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使用multiprocessing实现一个最简单的分布式作业调度系统

    针对“Python使用multiprocessing实现一个最简单的分布式作业调度系统”,我将提供以下的攻略步骤。 1. 安装必要的Python库 首先,需要确保安装了需要使用到的Python库,包括multiprocessing、subprocess和os等库。此外,可能还需要额外安装一些第三方库来扩展新的功能。 2. 设置任务队列 为了实现任务的调度,需…

    python 2023年5月19日
    00
  • python利用Excel读取和存储测试数据完成接口自动化教程

    下面我将为你详细讲解“python利用Excel读取和存储测试数据完成接口自动化教程”的完整实例教程。这个教程分为以下几个部分: Excel文件读取与写入 接口自动化读取测试数据 接口自动化存储测试结果 Excel文件读取与写入 首先,我们需要用到python的openpyxl模块来读写Excel文件。我们可以通过以下代码导入openpyxl包: impor…

    python 2023年5月13日
    00
  • Python中函数的参数传递与可变长参数介绍

    Python中函数的参数传递与可变长参数是编写Python程序时经常用到的知识点,下面将详细讲解。 函数参数的传递方式 Python函数中有两种参数的传递方式,一种是值传递,另一种是引用传递。在函数调用时,如果传递的是可变类型的参数,函数内部对这些参数的操作将影响到原始参数的值。 值传递 Python中的值传递指的是将参数的值复制到函数栈中,这样在函数内部改…

    python 2023年5月14日
    00
  • Python timeit模块的使用实践

    Python timeit模块的使用实践 什么是timeit模块 Python的timeit模块是一个用来测试Python代码执行时间的小工具。它可以精确地测量代码的执行时间,避免其他因素(如CPU、I/O等)的影响。 timeit模块的基础用法 计时单行语句 在Python解释器中,可以使用timeit模块来测试单行语句的执行时间: import time…

    python 2023年6月3日
    00
  • 如何在Python中使用pymysql库连接MySQL数据库?

    以下是如何在Python中使用pymysql库连接MySQL数据库的完整使用攻略,包括安装pymysql库、连接MySQL数据库、执行SQL语句等骤。同时,提供了两个示例以便更好理解如何使用pymysql库连接MySQL数据库。 步骤1:安装pymysql库 在Python中,我们可以使用pip命令安装pymysql库。以下是安装pymysql库基本语法: …

    python 2023年5月12日
    00
  • Python 反转序列(reversed函数)使用方法

    reversed() 函数是 Python 内置的用于反转序列对象的函数。它接受一个可迭代对象作为参数,返回一个新的迭代器对象,该迭代器对象以相反的顺序遍历原始序列。 reversed() 函数的基本语法如下: reversed(seq) 其中,seq 是要反转的序列对象,可以是列表、元组、字符串或任何可迭代对象。 例如,反转一个列表: lst = [1, …

    2023年2月19日
    00
  • Python实现LRU算法

    下面是关于“Python实现LRU算法”的完整攻略。 1. 什么是LRU算法 LRU(Least Recently Used)算法是一种常用的缓存淘汰算法,它的基本思是将最近最少使用的缓存块淘汰掉,以便为新的缓存块腾出空间。在Python中,我们可以使用字典双向链表来实现LRU算法。 2. Python实现LRU算法 下面是使用Python实现LRU算法的整…

    python 2023年5月13日
    00
  • 使用Python自动化Microsoft Excel和Word的操作方法

    使用Python自动化Microsoft Excel和Word的操作方法,可以让我们通过编程来实现一些可能需要手动完成的工作,提高工作效率。下面是关于如何使用Python自动化Microsoft Excel和Word的操作方法的详细实例教程: 步骤1:安装必需库 使用Python自动化Microsoft Excel和Word的操作方法,我们需要安装一些必要的…

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