猫史档案馆


【Python作品分享】计算器4:功能大更新【作品秀】

用户:技术喵的真传子弟技术喵的真传子弟查看:14 回复:3 评论:14 创建时间:2023-02-03T20:36:26


【作品展示】

center_image

 

【作品介绍】

在各位的催更下,作者终于不负众望,创作出了无BUG、超实用、超美观、超便捷的计算器4.0!

·上方图片是本次更新内容

·下方评论区可以输入产品建议(我打赌,没人会再反馈BUG,当然我说的BUG的范围参考上方图片的第8条

·再发布请标原作者

·允许转载

祝您体验愉快!

 

【作品源代码】

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 = ["MC","MR", "M+", "M-", 
                    "C", "π", "Help", "÷",
                    "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=9,
                                    command=(lambda x=b: self.click(x)))
            self.button.grid(row=r, column=c, padx=2, pady=5)
            c += 1
            if c > 3:
                c = 0
                r += 1
        self.entry = tk.Entry(self, width=24, borderwidth=3,
                              bg="deepskyblue", font=("黑体", 18))
        self.entry.grid(row=0, column=0, columnspan=40, padx=8, pady=5)

    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 "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            elif self.entry.get()[0] == "-":
                self.entry.delete(0)
            else:
                self.entry.insert(0, "-")
            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 == "MR":  # 取出数值
            if self.memory:
                self.entry.delete(0, tk.END)
                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, "-")

        elif key == "MC":  # 清除记忆
            self.memory = self.entry.get()
            self.title("")
            self.entry.delete(0, tk.END)

        elif key == "π":  # 圆周率
            if "=" in self.entry.get():
             self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, 3.14)

        elif key == "Help":  # 使用引导
            print('M+:存储数据')
            print('M-:存储正负反转后的数据')
            print('MR:输入当前存储数据')
            print('MC:清除当前存储数据')
            print('C:清除输入框')
            print('π:输入“3.14”')
            print('Help:使用引导')

        elif key ==  "×":  #美观乘号
            if "=" in self.entry.get():
             self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, "*")

        elif key ==  "÷":  #美观除号
            if "=" in self.entry.get():
             self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, "/")

        else:  # 其他键
            if "=" in self.entry.get():
             self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, key)


if __name__ == "__main__":
    Calc().mainloop()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
蟒蛇喵蟒蛇喵

搞个math.pi就是咯,另外,输入math.pi直接显示希腊字母‘π’就是了。而这个math.pi虽然显示的数字一般都在10位左右,但是,在计算机心里,含着十几亿位呢。我很期待你的改进,谢谢。

点赞0


评论


mornwindmornwind

个人建议把程序做到即使故意捣乱也不会报错

点赞0


评论


蟒蛇喵蟒蛇喵

center_image

当按下help键,可以以操作库 easygui弹出界面

点赞0


评论