使用tkinter制作一个简单的计算器,能完成浮点数的加减乘除计算。(一个浮点数不能包含两个小数点)
时间: 2024-05-07 07:19:39 浏览: 19
好的,我可以帮你写一个简单的计算器。以下是代码示例:
```python
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")
# Create the Entry widget for input and output
self.entry = tk.Entry(master, width=40, borderwidth=5)
self.entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)
# Create the buttons
self.button_1 = self.create_button(1)
self.button_2 = self.create_button(2)
self.button_3 = self.create_button(3)
self.button_4 = self.create_button(4)
self.button_5 = self.create_button(5)
self.button_6 = self.create_button(6)
self.button_7 = self.create_button(7)
self.button_8 = self.create_button(8)
self.button_9 = self.create_button(9)
self.button_0 = self.create_button(0)
self.button_add = self.create_button("+")
self.button_subtract = self.create_button("-")
self.button_multiply = self.create_button("*")
self.button_divide = self.create_button("/")
self.button_decimal = self.create_button(".")
self.button_clear = self.create_button("C")
self.button_equals = self.create_button("=")
# Create a list of buttons for convenience
self.buttons = [
[self.button_7, self.button_8, self.button_9, self.button_add],
[self.button_4, self.button_5, self.button_6, self.button_subtract],
[self.button_1, self.button_2, self.button_3, self.button_multiply],
[self.button_decimal, self.button_0, self.button_clear, self.button_divide],
[self.button_equals],
]
# Configure the grid
for row in range(len(self.buttons)):
for col in range(len(self.buttons[row])):
self.buttons[row][col].grid(row=row+1, column=col, padx=5, pady=5)
def create_button(self, number):
return tk.Button(self.master, text=number, padx=40, pady=20, command=lambda: self.button_click(number))
def button_click(self, number):
current = self.entry.get()
if number == "C":
self.entry.delete(0, tk.END)
elif number == "=":
try:
self.entry.delete(0, tk.END)
self.entry.insert(0, eval(current))
except:
self.entry.delete(0, tk.END)
self.entry.insert(0, "Error")
elif "." in current and number == ".":
pass
else:
self.entry.insert(tk.END, number)
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
这个计算器使用了 tkinter 模块创建 GUI。它有一个 Entry 小部件用于输入和输出,以及各种按钮。每个按钮都有一个 command 属性,它指定了该按钮被单击时要执行的方法。
在 `create_button` 方法中,我们创建了一个新的按钮并将其返回。每个按钮都与其相应的数字或运算符标记。
在 `button_click` 方法中,我们处理了各种按钮的操作。如果用户单击“C”按钮,则清除输入。如果用户单击“=”按钮,则计算输入表达式并将结果输入。如果用户单击小数点按钮,但当前输入已经包含小数点,则忽略该操作。否则,将数字或运算符附加到当前输入。
这个计算器支持加、减、乘、除、小数点和清除操作。它还可以处理错误的输入,例如除以零。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)