logn_sort 2023-02-18 14:37 采纳率: 50%
浏览 59
已结题

关于#SZY的想念#的问题,如何解决?

abcdefghijklmnopqrstuvwxyz

img

可以给个思路吗谢谢(

  • 写回答

6条回答 默认 最新

  • qq_46161207 2023-02-18 15:18
    关注
    获得1.05元问题酬金

    这个任务要求你完成一个简单的计算器,你需要在Python中实现它。

    你需要完成以下步骤:

    创建一个GUI,用于显示计算器的界面。

    实现计算器的逻辑。这个计算器需要支持基本的加减乘除四则运算,以及括号和小数点。你可以使用Python自带的eval()函数或者手动实现解析表达式的算法来完成这个步骤。

    将计算结果显示在GUI中。

    在GUI中添加按钮,使用户可以直接点击按钮来输入数字和运算符,而不需要手动输入。

    你可以使用Python自带的GUI库Tkinter来创建GUI界面。可以通过Google搜索Tkinter教程来学习如何使用它。

    示例:

    import tkinter as tk
    
    class Calculator:
        def __init__(self):
            self.root = tk.Tk()
            self.root.title("Calculator")
    
            # 显示器
            self.display = tk.Entry(self.root, width=25, font=('Arial', 16), justify='right')
            self.display.grid(row=0, column=0, columnspan=4, padx=10, pady=10)
    
            # 按钮
            button_list = [
                '7', '8', '9', '/',
                '4', '5', '6', '*',
                '1', '2', '3', '-',
                '0', '.', '=', '+'
            ]
            r = 1
            c = 0
            for b in button_list:
                if b == '=':
                    button = tk.Button(self.root, text=b, width=5, height=2, command=self.calculate)
                    button.grid(row=r, column=c, rowspan=2, padx=5, pady=5)
                else:
                    button = tk.Button(self.root, text=b, width=5, height=2, command=lambda x=b: self.add_to_expression(x))
                    button.grid(row=r, column=c, padx=5, pady=5)
                c += 1
                if c > 3:
                    c = 0
                    r += 1
    
            self.expression = ''
            self.root.mainloop()
    
        def add_to_expression(self, char):
            self.expression += char
            self.display.delete(0, tk.END)
            self.display.insert(0, self.expression)
    
        def calculate(self):
            try:
                result = eval(self.expression)
                self.display.delete(0, tk.END)
                self.display.insert(0, result)
                self.expression = ''
            except:
                self.display.delete(0, tk.END)
                self.display.insert(0, "Error")
                self.expression = ''
    
    if __name__ == '__main__':
        calculator = Calculator()
    

    这个计算器使用了一个Calculator类来封装计算器的逻辑,包括添加字符到表达式中、计算表达式、清空表达式等方法。在GUI中,它创建了一个显示器和一个按钮列表,并且为每个按钮设置了响应的回调函数。当用户点击数字或者运算符按钮时,它会将对应的字符添加到表达式中,并且更新显示器。当用户点击等号按钮时,它会计算表达式的值,并且更新显示器。如果计算失败,它会显示一个错误信息。

    评论

报告相同问题?

问题事件

  • 系统已结题 2月26日
  • 创建了问题 2月18日