用python的tkinter写一段计算器代码 数据要有圆周率 功能包括加减乘除 sin运算 cos运算 指数运算
时间: 2024-02-06 14:08:57 浏览: 92
以下是一个简单的计算器代码,包含了加减乘除、sin、cos和指数运算,并且使用了圆周率常数。
```python
import tkinter as tk
import math
class Calculator:
def __init__(self, master):
self.master = master
self.master.title("Calculator")
self.result_var = tk.StringVar()
self.result_var.set("0")
self.result_entry = tk.Entry(self.master, textvariable=self.result_var, width=30, justify="right", font=("Arial", 16))
self.result_entry.grid(row=0, column=0, columnspan=4)
self.buttons = [
"7", "8", "9", "+",
"4", "5", "6", "-",
"1", "2", "3", "*",
".", "0", "pi", "/",
"sin", "cos", "exp", "C"
]
self.create_buttons()
def create_buttons(self):
row = 1
col = 0
for button_text in self.buttons:
command = lambda x=button_text: self.button_click(x)
tk.Button(self.master, text=button_text, width=6, height=2, command=command).grid(row=row, column=col)
col += 1
if col > 3:
col = 0
row += 1
def button_click(self, text):
if text == "C":
self.result_var.set("0")
elif text == "=":
try:
result = str(eval(self.result_var.get()))
self.result_var.set(result)
except:
self.result_var.set("Error")
elif text == "pi":
self.result_var.set(str(math.pi))
elif text == "sin":
try:
result = str(math.sin(float(self.result_var.get())))
self.result_var.set(result)
except:
self.result_var.set("Error")
elif text == "cos":
try:
result = str(math.cos(float(self.result_var.get())))
self.result_var.set(result)
except:
self.result_var.set("Error")
elif text == "exp":
try:
result = str(math.exp(float(self.result_var.get())))
self.result_var.set(result)
except:
self.result_var.set("Error")
else:
if self.result_var.get() == "0":
self.result_var.set(text)
else:
self.result_var.set(self.result_var.get() + text)
root = tk.Tk()
app = Calculator(root)
root.mainloop()
```
在这个代码中,我们使用了 `tkinter` 来创建了一个简单的 GUI 界面,包含了一个文本框和若干个按钮。我们将每个按钮的点击事件都绑定到了 `button_click` 函数上,根据按钮的不同,执行不同的操作,包括加减乘除、sin、cos和指数运算,以及清空操作和等号操作。其中,我们使用了 `math` 模块来实现了 sin、cos和指数运算,并将圆周率常数设为了 pi。
阅读全文