超好用的Python计算器(tk实现)

        去年用python写了一个计算器,很普通,今年我对计算器做了改进,加了tk的界面,给你们看看是什么样子。 

不说废话,直接上源码。

# 创建一个名为tkinter的别名
import tkinter as tk


# 定义一个函数,用于在文本框中添加数字
def button_click(number):
    # 获取当前文本框中的内容
    current = entry.get()
    # 清空文本框
    entry.delete(0, tk.END)
    # 在文本框中插入新的内容
    entry.insert(tk.END, current + str(number))


# 定义一个函数,用于清空文本框
def button_clear():
    # 清空文本框
    entry.delete(0, tk.END)


# 定义一个函数,用于计算表达式并在输出框中显示结果
def button_equal():
    # 获取文本框中的表达式
    expression = entry.get()
    try:
        # 计算表达式的结果
        result = eval(expression)
        # 清空输出框
        output_text.delete("1.0", tk.END)
        # 在输出框中插入结果
        output_text.insert(tk.END, "结果: " + str(result))
    except Exception as e:
        # 清空输出框
        output_text.delete("1.0", tk.END)
        # 在输出框中插入错误信息
        output_text.insert(tk.END, "错误: " + str(e))


# 创建一个名为root的窗口
root = tk.Tk()
root.title("计算器")

# 创建一个名为entry_frame的框架,并将其放置在窗口的第一行
entry_frame = tk.Frame(root)
entry_frame.grid(row=0, column=0, columnspan=5, padx=10, pady=10)

# 创建一个名为output_frame的框架,并将其放置在窗口的第二行
output_frame = tk.Frame(root)
output_frame.grid(row=1, column=0, columnspan=5, padx=10, pady=5)

# 创建一个名为entry的文本框,并将其放置在entry_frame中
entry = tk.Entry(entry_frame, width=35, borderwidth=5)
entry.pack()

# 创建一个名为output_text的文本框,并将其放置在output_frame中
output_text = tk.Text(output_frame, height=1, width=30)
output_text.pack()

# 创建一个包含所有按钮的列表
buttons = [
    ("7", 1, 2), ("8", 2, 2), ("9", 3, 2), ("/", 4, 2),  # 数字键和除号
    ("4", 1, 3), ("5", 2, 3), ("6", 3, 3), ("*", 4, 3),  # 数字键和乘号
    ("1", 1, 4), ("2", 2, 4), ("3", 3, 4), ("-", 4, 4),  # 数字键和减号
    ("0", 1, 5), ("C", 2, 5), ("=", 3, 5), ("+", 4, 5)  # 数字键、清空键和加号
]

# 遍历按钮列表,并创建每个按钮
for button in buttons:
    text, column, row = button
    if text == "=":
        # 创建一个计算结果的按钮
        btn = tk.Button(root, text=text, padx=40, pady=20, command=button_equal)
    else:
        # 创建一个数字按钮
        btn = tk.Button(root, text=text, padx=40, pady=20, command=lambda text=text: button_click(text))
    # 将按钮放置在窗口中
    btn.grid(row=row, column=column, padx=5, pady=5)

# 创建一个名为btn_clear的按钮,并将其放置在窗口的第七行
btn_clear = tk.Button(root, text="Clear", padx=150, pady=20, command=button_clear)
btn_clear.grid(row=6, column=0, columnspan=5, padx=10, pady=5)

# 进入主事件循环
root.mainloop()

注释我写的很详细,宝子们直接复制代码就可以用啦。

下面是实现过程,感兴趣的宝子们可以看一下。

下面是根据上述代码实现计算器功能的具体步骤:

1. 导入`tkinter`模块,它是Python中用于创建GUI应用程序的标准库。
2. 创建`tkinter`的根窗口对象,命名为`root`,并设置窗口标题为"Calculator"。
3. 创建一个用于用户输入的文本框,命名为`entry`,并将其放置在根窗口的第一行。
4. 创建一个用于显示结果的文本框,命名为`output_text`,并将其放置在根窗口的第二行。
5. 定义按钮的回调函数:
   - `button_click(number)`:当用户点击数字按钮时,将该数字添加到输入框中。
   - `button_clear()`:当用户点击清除按钮时,清空输入框中的内容。
   - `button_equal()`:当用户点击等号按钮时,获取输入框中的表达式,使用`eval()`函数计算结果,并将结果显示在输出文本框中。
6. 创建按钮并放置在根窗口中的适当位置:
   - 创建一个按钮列表,其中每个按钮具有文本、列和行的信息。
   - 遍历按钮列表,创建对应的按钮,并根据按钮类型设置回调函数。
7. 创建一个清除按钮,并放置在根窗口的最后一行。
8. 进入主事件循环 (`root.mainloop()`),监听用户的操作和事件,并响应相应的事件处理函数。

以上是实现计算器功能的基本步骤。通过使用`tkinter`的窗口、文本框和按钮等部件,以及相应的事件处理函数,可以实现用户输入表达式、计算结果并将其显示在界面上的简单计算器功能。

请注意,上述代码只提供了最基本的计算器功能,并未包含复杂的错误处理或其他高级功能。在实际开发中,可能需要进行更多的错误处理和边界情况的检查。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值