python3写个计算器,带操作按钮

  • 19
  • 2023年5月1日23:14:56

效果:
file
代码加注释:

import tkinter as tk

class Calculator:
    def __init__(self, master):
        self.master = master
        self.master.title("计算器")

        # create screen widget 创建屏幕小部件
        self.screen = tk.Entry(self.master, width=25, font=('Arial', 16), justify='right')
        self.screen.grid(row=0, column=0, columnspan=4, pady=5)

        # create buttons 创建按钮
        buttons = [
            '7', '8', '9', '/',
            '4', '5', '6', '*',
            '1', '2', '3', '-',
            '0', '.', '=', '+'
        ]

        # loop over button list and create buttons 循环遍历按钮列表并创建按钮
        r = 1 # 初始行号
        c = 0 # 初始列号
        for b in buttons:
            if b == '=':
                btn = tk.Button(self.master, text=b, width=10, height=2, command=self.calculate)
                btn.grid(row=r, column=c, columnspan=2, padx=2, pady=2) # 跨度为2列
            else:
                btn = tk.Button(self.master, text=b, width=5, height=2, command=lambda x=b: self.append(x))
                btn.grid(row=r, column=c, padx=2, pady=2)
            c += 1 # 列数加1
            if c > 3:
                c = 0 # 回到第一列
                r += 1 # 行数加1

    def append(self, val):
        self.screen.insert('end', val) # 将按下的数字或操作符添加到屏幕文本框末尾

    def calculate(self):
        try:
            result = eval(self.screen.get()) # 从屏幕文本框获取表达式并计算结果
            self.screen.delete(0, 'end') # 清空屏幕文本框
            self.screen.insert('end', str(result)) # 将结果显示在屏幕文本框中
        except:
            self.screen.delete(0, 'end') # 清空屏幕文本框
            self.screen.insert('end', '错误') # 显示错误信息

root = tk.Tk()
calc = Calculator(root)
root.mainloop()

使用Tkinter库创建一个窗口,包含一个文本框和一组按钮。按钮被分为4列,每列包含4个按钮。数字和操作符按钮都是等宽的,并且操作符按钮具有不同的颜色以与数字按钮区分开来。

当用户按下数字按钮时,该数字将添加到文本框的末尾。当用户按下操作符按钮时,该操作符将执行相应的数学运算并将结果显示在文本框中。如果用户尝试除以零或执行其他不正确的计算,则文本框将显示“错误”消息。

本文来自凡蜕博客(https://blog.ysboke.cn), 转载请带上地址.。
匿名

发表评论

匿名网友