自学2年Python打造多功能计算器,求大佬指点

📅 2026/7/1 6:42:03
自学2年Python打造多功能计算器,求大佬指点
本人学过两年CPython自学了两年只算是一个萌新试着做了一个简易计算器练练手。现在发在社区里望能有大佬指点本人不胜感激如有问题欢迎各位将高见发在评论区本人定逐条认真查看exe文件在个人主页下面是代码import tkinter.messagebox import tkinter as tk import math,numpy,sys,os def show(): window2tk.Tk() window2.title(更新信息) window2.geometry(450x180) text5tk.Label(window2,text1.1版本更新信息,fgblack,font(Times,40,bold)) text5.pack() text6tk.Label(window2,text·1.1 2025年7月12日 增添发行公告,fgblack,font(Times,20)) text6.pack() button5tk.Button(window2,text继续,commandwindow2.destroy) button5.pack(fillx,pady(20,0)) window2.wait_window(window2) window3tk.Tk() window3.title(更新信息) window3.geometry(1100x180) text5tk.Label(window3,text1.2版本更新信息,fgblack,font(Times,40,bold)) text5.pack() text6tk.Label(window3,text·1.2 2025年7月13日12:38:03 增添更新信息显示增加功能数量修改部分代码以适配新版本,fgblack,font(Times,20)) text6.pack() button6tk.Button(window3,text继续,commandwindow3.destroy) button6.pack(fillx,pady(20,0)) window3.wait_window(window3) window4tk.Tk() window4.title(更新信息) window4.geometry(1060x180) text5tk.Label(window4,text2.0版本更新信息,fgblack,font(Times,40,bold)) text5.pack() text6tk.Label(window4,text·2.0 2025年8月8日13:36:05 增加部分代码修改错误代码修补程序漏洞提升用户体验,fgblack,font(Times,20)) text6.pack() button7tk.Button(window4,text继续,commandwindow4.destroy) button7.pack(fillx,pady(20,0)) window4.wait_window(window4) window5tk.Tk() window5.title(更新信息) window5.geometry(1250x200) text5tk.Label(window5,text3.0版本更新信息,fgblack,font(Times,40,bold)) text5.pack() text6tk.Label(window5,text·3.0 2026年6月27日21:29:01 完成全软件大规模修改优化升级“发行公告”为“使用说明”\n 修改发行公告及更新信息显示模式增加计算功能删除冗余代码纠正部分代码错误提升用户体验,fgblack,font(Times,20)) text6.pack() button8tk.Button(window5,text关闭,commandwindow5.destroy) button8.pack(fillx,pady(20,0)) window5.mainloop() def quit2(): tkinter.messagebox.showinfo(退出,感谢使用下次再见) sys.exit() def gonggao(): windowtk.Tk() window.title(公告) window.geometry(1050x700) text2tk.Label(window,text“简易计算器 3.0”使用方法,fgblack,font(Times,40,bold)) text2.pack() text3tk.Label(window,text“简易计算器 3.0”软件已于2026年6月27日正式发行具体使用方法如下持续更新,fgblack,font(Times,20)) text3.pack() text4tk.Label(window,text\t1.计算简单数学表达式直接输入。如11\n2.幂运算pow(m,n)表示计算m的n次幂。如pow(2,2)\n3.开根运算pow(m,1/n)表示计算n次根号m的值。如pow(2,1/2)\n4.计算字符串的长度len(s)表示计算字符串s的长度。如len(123)\n5.计算两数的平均值abs(m,n)表示计算m和n的平均值。如abs(1,2)\n6.计算某数的阶乘factorial(a),表示计算a!即a的阶乘。如factorial(5)\n7.计算最大公约数gcd(a,b...m)表示计算数据a到m的最大公约数。如gcd(1,2,3,4,5)\n8.计算最小公倍数lcm(a,b...m)表示计算数据a到m的最小公倍数。如lcd(1,2,3,4,5)\n9.三角函数双曲函数运算按照对应数学语言输入即可。\n 如sin(45),sinh(45)此功能持续更新中如有缺漏敬请谅解\n10.如需调用π请输入:pi。\n\n注意计算时请将输入法设置为英文否则计算将失败\n\n 版权所有侵权必究计算功能持续更新中如有缺漏敬请谅解祝您使用愉快\n\n提示如果你试图利用此程序运行恶意代码该程序不欢迎你请立即离开,fgblack,font(Times,20)) text4.pack() button4tk.Button(window, text关闭, commandwindow.destroy) button4.pack(anchortk.SW,fillx,pady(20,0)) window.mainloop() def on_closing(): if messagebox.askokcancel(退出,确定退出): root_window.destroy safe_variables{ abs:abs,pi:math.pi,e:math.e,tau:math.tau,inf:math.inf,nan:math.nan,sqrt:math.sqrt,sum:numpy.sum,factorial:math.factorial,gcd:math.gcd,lcm:math.lcm,pow:math.pow,sin:math.sin,cos:math.cos,tan:math.tan,sinh:math.sinh,cosh:math.cosh,tanh:math.tanh,asin:math.asin,acos:math.acos,atan:math.atan,atan2:math.atan2,asinh:math.asinh,acosh:math.acosh,atanh:math.atanh } root_windowtk.Tk() root_window.title(简易计算器 3.0) root_window.geometry(300x430) text1tk.Label(root_window, text请输入计算公式:\n(支持各类运算\n 详见“使用方法”), fgblack, font(Times, 20, bold)) text1.pack() entrytk.Entry(root_window) entry.pack(anchortk.CENTER,pady(50,0)) def show_input(eventNone): aentry.get() if not a: tkinter.messagebox.showerror(错误,输入不能为空) try: bcompile(a,string,eval) tkinter.messagebox.showinfo(计算结果,eval(b, {__builtins__: {}},safe_variables)) except SyntaxError as e: tkinter.messagebox.showerror(错误,输入表达式无法运算:str(e)) except NameError as e: tkinter.messagebox.showerror(错误,输入非法字符:str(e)) except ZeroDivisionError as e: tkinter.messagebox.showerror(错误,输入除数为0:str(e)) except ValueError as e: tkinter.messagebox.showerror(错误,输入表达式不符合数学语法:str(e)) button1tk.Button(root_window, text计算(Enter), commandshow_input) button2tk.Button(root_window,text关闭,commandquit2) button3tk.Button(root_window,text使用方法,commandgonggao) button4tk.Button(root_window,text更新信息,commandshow) button1.pack(anchortk.SE,fillx,pady(50,0)) button2.pack(anchortk.SW,fillx,pady(25,0)) button3.pack(anchortk.SE,fillx,pady(25,0)) button4.pack(anchortk.SE,fillx,pady(25,0)) root_window.bind(Return,show_input) root_window.mainloop()