用python写代码:用tkinter实现一个简单计算器,可以进行加减乘除四则运算,支持小数点,支持多次运算,由label和button构成,并灵活运用eval函数,用grid布局,并有除零错误提示。
时间: 2024-01-11 15:03:32 浏览: 46
好的,下面是代码实现:
```python
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("简单计算器")
self.result = tk.StringVar()
self.result.set("0")
self.label = tk.Label(master, textvariable=self.result, font=('Arial', 20))
self.label.grid(row=0, column=0, columnspan=4)
# 创建按钮
self.create_button("7", 1, 0)
self.create_button("8", 1, 1)
self.create_button("9", 1, 2)
self.create_button("/", 1, 3)
self.create_button("4", 2, 0)
self.create_button("5", 2, 1)
self.create_button("6", 2, 2)
self.create_button("*", 2, 3)
self.create_button("1", 3, 0)
self.create_button("2", 3, 1)
self.create_button("3", 3, 2)
self.create_button("-", 3, 3)
self.create_button("0", 4, 0)
self.create_button(".", 4, 1)
self.create_button("C", 4, 2)
self.create_button("+", 4, 3)
self.create_button("=", 5, 0, columnspan=4)
def create_button(self, text, row, col, columnspan=1):
button = tk.Button(self.master, text=text, font=('Arial', 16), width=5, height=2, command=lambda: self.click(text))
button.grid(row=row, column=col, columnspan=columnspan)
def click(self, text):
if text == "C":
self.result.set("0")
elif text == "=":
try:
self.result.set(eval(self.result.get()))
except ZeroDivisionError:
self.result.set("除数不能为0")
else:
if self.result.get() == "0":
self.result.set(text)
else:
self.result.set(self.result.get() + text)
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
这个计算器使用了`grid`布局,将数字和运算符按钮放在了指定的位置,使用`button`绑定`click`函数来实现按钮的点击事件。在`click`函数中,使用`eval`函数来计算表达式的值,并将结果显示在`label`上,如果出现除0错误,则显示错误提示。
阅读全文