python编写一个带有开根功能和图形界面的计算器
时间: 2024-10-21 21:17:55 浏览: 17
Python通过Tkinter库可以轻松创建简单的图形用户界面(GUI),而为了实现带开方功能的计算器,我们可以结合`math`模块来计算平方根。下面是一个简单的示例,展示如何创建这样的计算器:
```python
import tkinter as tk
from tkinter import messagebox
import math
class Calculator(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("300x400")
self.title("简单计算器")
# 创建布局
self.display = tk.Entry(self, width=35, bd=8)
self.display.grid(row=0, column=0, columnspan=4, pady=10)
buttons = [
["7", "8", "9", "/"],
["4", "5", "6", "*"],
["1", "2", "3", "-"],
[".", "0", "=", "+"]
]
for i in range(4):
for j in range(4):
button_text = buttons[i][j]
button = tk.Button(self, text=button_text, padx=40, pady=20,
command=lambda x=button_text: self.on_click(x))
button.grid(row=i+1, column=j)
def on_click(self, key):
if key.isdigit():
self.display.insert(tk.END, key)
elif key == "." and not "." in str(self.display.get()):
self.display.insert(tk.END, ".")
elif key == "=":
try:
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(tk.END, str(result))
if str(result).startswith("math"):
messagebox.showinfo('警告', '输入结果包含数学函数,请手动计算开方')
return
except Exception as e:
messagebox.showerror('错误', '输入无效,请检查并重新计算')
self.display.delete(0, tk.END)
elif key in ("/", "*", "-", "+"):
self.display.insert(tk.END, key)
# 创建并运行计算器
calculator = Calculator()
calculator.mainloop()
```
在这个例子中,我们创建了一个窗口,上面有数字、运算符和一个显示框。当用户点击按钮时,会触发相应的回调函数`on_click`,处理用户的输入。如果用户尝试计算含有开方的表达式,程序会在结果显示前弹出一个提示。
阅读全文