📅  最后修改于: 2023-12-03 15:08:45.406000             🧑  作者: Mango
在本文中,我们将探讨如何使用 Python 编写一个简单的计算器。我们将使用 Python 3 版本和标准库中的 tkinter 模块来实现这个计算器。
首先,我们需要导入 tkinter 模块以创建我们的 GUI 应用程序。在 Python 3 中,我们可以这样导入:
import tkinter as tk
我们需要创建一个主窗口来容纳我们的计算器。我们还可以通过设置标题来更改窗口的名称。以下是一个示例:
app = tk.Tk()
app.title("Calculator")
我们可以使用 tkinter 的 Entry 组件创建一个输入字段,使用户能够在计算器中输入数字和操作符。以下是一个示例:
expr = tk.Entry(app, width=25, font=("Arial", 16))
expr.grid(columnspan=4)
我们可以使用 tkinter 的 Button 组件创建按钮,使用户能够输入数字和进行计算。以下是一些示例代码:
button_1 = tk.Button(app, text="1", font=("Arial", 16), padx=10, pady=10)
button_2 = tk.Button(app, text="2", font=("Arial", 16), padx=10, pady=10)
button_add = tk.Button(app, text="+", font=("Arial", 16), padx=10, pady=10)
我们需要将这些按钮布置在主窗口中以创建计算器。我们可以使用 grid() 函数指定按钮的行和列。以下是一个示例:
button_1.grid(row=1, column=0)
button_2.grid(row=1, column=1)
button_add.grid(row=1, column=2)
我们需要为每个按钮添加一个单击事件处理程序,以允许用户输入数字和执行计算。我们可以使用 lambda 函数将处理程序添加为按钮的 command 属性。以下是一个示例:
def add_number(number):
expr.insert(tk.END, str(number))
button_1 = tk.Button(app, text="1", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(1))
button_2 = tk.Button(app, text="2", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(2))
button_add = tk.Button(app, text="+", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number("+"))
最后,我们需要添加一个计算按钮来执行用户输入的计算。我们可以编写一个处理程序来计算表达式,然后将结果添加到输入字段中。以下是一个示例:
def calculate():
result = eval(expr.get())
expr.delete(0, tk.END)
expr.insert(0, str(result))
button_calc = tk.Button(app, text="Calculate", font=("Arial", 16), padx=10, pady=10, command=calculate)
button_calc.grid(row=2, columnspan=4)
import tkinter as tk
app = tk.Tk()
app.title("Calculator")
expr = tk.Entry(app, width=25, font=("Arial", 16))
expr.grid(columnspan=4)
def add_number(number):
expr.insert(tk.END, str(number))
button_1 = tk.Button(app, text="1", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(1))
button_2 = tk.Button(app, text="2", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(2))
button_3 = tk.Button(app, text="3", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(3))
button_4 = tk.Button(app, text="4", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(4))
button_5 = tk.Button(app, text="5", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(5))
button_6 = tk.Button(app, text="6", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(6))
button_7 = tk.Button(app, text="7", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(7))
button_8 = tk.Button(app, text="8", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(8))
button_9 = tk.Button(app, text="9", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(9))
button_0 = tk.Button(app, text="0", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number(0))
button_add = tk.Button(app, text="+", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number("+"))
button_sub = tk.Button(app, text="-", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number("-"))
button_mult = tk.Button(app, text="*", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number("*"))
button_div = tk.Button(app, text="/", font=("Arial", 16), padx=10, pady=10, command=lambda: add_number("/"))
button_calc = tk.Button(app, text="Calculate", font=("Arial", 16), padx=10, pady=10)
button_1.grid(row=1, column=0)
button_2.grid(row=1, column=1)
button_3.grid(row=1, column=2)
button_add.grid(row=1, column=3)
button_4.grid(row=2, column=0)
button_5.grid(row=2, column=1)
button_6.grid(row=2, column=2)
button_sub.grid(row=2, column=3)
button_7.grid(row=3, column=0)
button_8.grid(row=3, column=1)
button_9.grid(row=3, column=2)
button_mult.grid(row=3, column=3)
button_0.grid(row=4, column=0)
button_div.grid(row=4, column=1)
button_calc.grid(row=4, column=2, columnspan=2)
def calculate():
result = eval(expr.get())
expr.delete(0, tk.END)
expr.insert(0, str(result))
button_calc.config(command=calculate)
app.mainloop()
这是一个非常简单的计算器应用程序,只有基本的加、减、乘、除功能。您可以根据需要添加其他按钮和功能。