python实现一个有窗口的复杂的计算器
时间: 2024-02-20 08:59:26 浏览: 104
python计算器的实现
好的,以下是一个用 Python 和 tkinter 实现的复杂计算器的代码:
```python
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")
self.equation = tk.StringVar()
self.equation.set("0")
# 创建显示屏
self.screen = tk.Entry(master, textvariable=self.equation, width=30, justify="right", font=("Arial", 16))
self.screen.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
# 创建数字按钮
self.create_button("1", 1, 0)
self.create_button("2", 1, 1)
self.create_button("3", 1, 2)
self.create_button("4", 2, 0)
self.create_button("5", 2, 1)
self.create_button("6", 2, 2)
self.create_button("7", 3, 0)
self.create_button("8", 3, 1)
self.create_button("9", 3, 2)
self.create_button("0", 4, 1)
# 创建运算符按钮
self.create_button("+", 1, 3)
self.create_button("-", 2, 3)
self.create_button("*", 3, 3)
self.create_button("/", 4, 3)
# 创建其他按钮
self.create_button("C", 4, 0)
self.create_button("=", 4, 2)
self.create_button(".", 4, 4)
def create_button(self, text, row, column):
button = tk.Button(self.master, text=text, width=6, height=2, font=("Arial", 16), command=lambda: self.button_click(text))
button.grid(row=row, column=column, padx=5, pady=5)
def button_click(self, text):
if text == "C":
self.equation.set("0")
elif text == "=":
try:
result = str(eval(self.equation.get()))
self.equation.set(result)
except:
self.equation.set("Error")
else:
if self.equation.get() == "0":
self.equation.set(text)
else:
self.equation.set(self.equation.get() + text)
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
该代码创建了一个名为 `Calculator` 的类,用于创建复杂计算器的 GUI 界面。该界面包括一个显示屏和各种数字按钮、运算符按钮和其他按钮,这些按钮与 `button_click` 方法绑定,当用户单击这些按钮时,该方法将更新屏幕上显示的文本。最后,我们通过创建一个 `Calculator` 的实例,完成复杂计算器的界面创建。
阅读全文