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

【作品介绍】
在各位的催更下,作者终于不负众望,创作出了无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
蟒蛇喵搞个math.pi就是咯,另外,输入math.pi直接显示希腊字母‘π’就是了。而这个math.pi虽然显示的数字一般都在10位左右,但是,在计算机心里,含着十几亿位呢。我很期待你的改进,谢谢。
点赞0
评论