m0_62121739 2021-11-23 13:57 采纳率: 25%
浏览 250
已结题

编写一个程序,实现简单计算器,包括两个数基本加减乘除运算。

img

  • 写回答

3条回答 默认 最新

  • 辉煌仪奇 2021-11-23 14:20
    关注

    有帮助请采纳
    简单界面计算器

    import tkinter as tk
    
    
    class Calc(tk.Tk):
        """计算器窗体类"""
        def __init__(self):
            """初始化实例"""
            tk.Tk.__init__(self)
            self.title("计算器")
            self.memory = 0  # 暂存数值
            self.create()
    
        def create(self):
            """创建界面"""
            btn_list = ["C", "M->", "->M", "/",
                        "7", "8", "9", "*",
                        "4", "5", "6", "-",
                        "1", "2", "3", "+",
                        "+/-", "0", ".", "="]
            r = 1
            c = 0
            for b in btn_list:
                self.button = tk.Button(self, text=b, width=5,
                                        command=(lambda x=b: self.click(x)))
                self.button.grid(row=r, column=c, padx=3, pady=6)
                c += 1
                if c > 3:
                    c = 0
                    r += 1
            self.entry = tk.Entry(self, width=24, borderwidth=2,
                                  bg="yellow", font=("Consolas", 12))
            self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)
    
        def click(self, key):
            """响应按钮"""
            if key == "=":  # 输出结果
                result = eval(self.entry.get())
                self.entry.insert(tk.END, " = " + str(result))
            elif key == "C":  # 清空输入框
                self.entry.delete(0, tk.END)
            elif key == "->M":  # 存入数值
                self.memory = self.entry.get()
                if "=" in self.memory:
                    ix = self.memory.find("=")
                    self.memory = self.memory[ix + 2:]
                self.title("M=" + self.memory)
            elif key == "M->":  # 取出数值
                if self.memory:
                    self.entry.insert(tk.END, self.memory)
            elif key == "+/-":  # 正负翻转
                if "=" in self.entry.get():
                    self.entry.delete(0, tk.END)
                elif self.entry.get()[0] == "-":
                    self.entry.delete(0)
                else:
                    self.entry.insert(0, "-")
            else:  # 其他键
                if "=" in self.entry.get():
                    self.entry.delete(0, tk.END)
                self.entry.insert(tk.END, key)
    
    
    if __name__ == "__main__":
        Calc().mainloop()
    

    img

    简便计算器

    def add(x, y):
        return x + y
    
    
    def substract(x, y):
        return x - y
    
    
    def multiply(x, y):
        return x * y
    
    
    def divide(x, y):
        return x / y
    
    
    if __name__ == '__main__':
        while True:
            print('''"*********欢迎来到简便计算器*********
                请选择运算方式
                1、相  加
                2、相  减
                3、相  乘
                4、相  除
                5、退  出
            '''
                  )
            choice = input("请输入你的选择(1/2/3/4/5):")
            if choice == "5":
                break
            num1 = eval(input("请输入第一个数字:"))
            num2 = eval(input("请输入第二个数字:"))
    
            if choice == '1':
                print('\t   ', num1, '+', num2, '=', add(num1, num2))
            elif choice == '2':
                print('\t   ', num1, '-', num2, '=', substract(num1, num2))
            elif choice == '3':
                print('\t   ', num1, '*', num2, '=', multiply(num1, num2))
            elif choice == '4':
                print('\t   ', num1, '/', num2, '=', divide(num1, num2))
            else:
                print("输入错误,请重新输入")
            print('*' * 40)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑