今天我们不用黑框框执行命令的方式,直接用Python内置的 Tkinter 做一个带窗口、带按钮、能点击的图形计算器,和手机计算器一样好用!
免费、轻量、自动提示、界面清爽下载地址:https://code.visualstudio.com/安装时记得勾选:

打开VSCode → 左边扩展(Ctrl+Shift+X)搜索安装:

已安装就不用管没安装:官网下载 Python3.8+一定要勾选 Add Python to PATH
你直接把下面这段话发给豆包/文心一言/ChatGPT,AI就会给你生成完整可运行的Tkinter图形计算器。

请用Python + Tkinter 写一个图形界面的计算器,满足以下要求:1. 图形界面,带按钮,可点击。2. 实现:加、减、乘、除、清空、退格、等于。3. 界面干净、按钮大小合适,适合新手学习。4. 处理异常:除数为0、非法输入不崩溃。5. 代码每一行加中文注释,非常详细,适合自学Python第9天的新手。6. 代码可以直接复制运行,不需要改任何东西。7. 不要使用任何第三方库,只用Python自带的Tkinter。8. 最后告诉我:运行步骤、调试步骤、打包exe步骤、发布方法。
新建文件 → 命名为 calc_gui.py
# Python自学第9天:Tkinter图形计算器# 功能:加、减、乘、除、清空、删除、等于、异常处理import tkinter as tkfrom tkinter import *# ========== 1. 创建主窗口 ==========root = Tk()root.title("Python图形计算器")root.geometry("320x420") # 窗口大小root.resizable(False, False) # 禁止拉伸# ========== 2. 显示框 ==========input_text = StringVar()input_entry = Entry( root, textvariable=input_text, font=("Arial", 20), bd=10, justify=RIGHT)input_entry.grid(row=0, column=0, columnspan=4, pady=10)# ========== 3. 按钮点击事件 ==========defclick(num):# 获取当前内容 current = input_text.get()# 追加数字/符号 input_text.set(current + str(num))defclear():# 清空 input_text.set("")defback():# 删除最后一位 current = input_text.get() input_text.set(current[:-1])defequal():# 计算结果try: result = eval(input_text.get()) input_text.set(str(result))except ZeroDivisionError: input_text.set("除数不能为0")except: input_text.set("输入错误")# ========== 4. 创建按钮 ==========# 第一行btn7 = Button(root, text="7", font=("Arial",16), padx=20, pady=10, command=lambda:click(7))btn7.grid(row=1, column=0)btn8 = Button(root, text="8", font=("Arial",16), padx=20, pady=10, command=lambda:click(8))btn8.grid(row=1, column=1)btn9 = Button(root, text="9", font=("Arial",16), padx=20, pady=10, command=lambda:click(9))btn9.grid(row=1, column=2)btn_div = Button(root, text="/", font=("Arial",16), padx=20, pady=10, command=lambda:click("/"))btn_div.grid(row=1, column=3)# 第二行btn4 = Button(root, text="4", font=("Arial",16), padx=20, pady=10, command=lambda:click(4))btn4.grid(row=2, column=0)btn5 = Button(root, text="5", font=("Arial",16), padx=20, pady=10, command=lambda:click(5))btn5.grid(row=2, column=1)btn6 = Button(root, text="6", font=("Arial",16), padx=20, pady=10, command=lambda:click(6))btn6.grid(row=2, column=2)btn_mul = Button(root, text="*", font=("Arial",16), padx=20, pady=10, command=lambda:click("*"))btn_mul.grid(row=2, column=3)# 第三行btn1 = Button(root, text="1", font=("Arial",16), padx=20, pady=10, command=lambda:click(1))btn1.grid(row=3, column=0)btn2 = Button(root, text="2", font=("Arial",16), padx=20, pady=10, command=lambda:click(2))btn2.grid(row=3, column=1)btn3 = Button(root, text="3", font=("Arial",16), padx=20, pady=10, command=lambda:click(3))btn3.grid(row=3, column=2)btn_sub = Button(root, text="-", font=("Arial",16), padx=20, pady=10, command=lambda:click("-"))btn_sub.grid(row=3, column=3)# 第四行btn0 = Button(root, text="0", font=("Arial",16), padx=20, pady=10, command=lambda:click(0))btn0.grid(row=4, column=0)btn_dot = Button(root, text=".", font=("Arial",16), padx=22, pady=10, command=lambda:click("."))btn_dot.grid(row=4, column=1)btn_eq = Button(root, text="=", font=("Arial",16), padx=20, pady=10, command=equal)btn_eq.grid(row=4, column=2)btn_add = Button(root, text="+", font=("Arial",16), padx=18, pady=10, command=lambda:click("+"))btn_add.grid(row=4, column=3)# 第五行btn_clear = Button(root, text="清空", font=("Arial",16), padx=40, pady=10, command=clear, bg="#ff7043")btn_clear.grid(row=5, column=0, columnspan=2)btn_back = Button(root, text="删除", font=("Arial",16), padx=40, pady=10, command=back, bg="#ff7043")btn_back.grid(row=5, column=2, columnspan=2)# ========== 启动窗口 ==========root.mainloop()Ctrl+S → 保存到:D:\Python\calc_gui.py
文件名不要有中文!不要有空格!
方法A(最简单):点击VSCode右上角 绿色三角 ▶️
方法B:终端输入:
python calc_gui.py
.py 结尾解决:
tcl/tk and IDLEcommand= 有没有写错


代码里已经加了:

打开CMD(Win+R → cmd)
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simplecd D:\Python自学\第9天pyinstaller -F -w calc_gui.py解释:
-F:打包成一个文件-w:不显示黑框框(图形界面必须加)打包完会出现3个东西:
打开 dist 文件夹 → 双击exe就能用!
直接把 dist/calc_gui.exe 发给朋友不用装Python,点开即用
恭喜自己,完成了Python第一个真正的软件项目!
学习更多有趣的内容,请关注公众号一起学习!