点击“蓝字” 关注我们家长您好,恭喜您在AI时代关注了数程思维派,我是秦老师。
我们聚焦学以致用与创新,“AI驾驭者”帮助孩子构建驾驭AI而非被替代的能力。
本项目将打造一款Python GUI倒计时器,最终实现倒计时、开始/暂停/继续/重置功能,倒计时结束自动提示“时间到!”。
项目核心使用Python内置tkinter库,无需额外安装,操作简单又有趣。通过完成这个项目,孩子能掌握GUI界面开发、函数封装、事件驱动编程等核心技能。同时学会借助AI优化代码,锻炼逻辑思维与问题解决能力,让AI真正成为编程路上的好助手。在前五讲中,我们一步步完成了倒计时器的界面搭建、核心逻辑实现和交互优化,现在已经有了一个功能完整的程序。
这一讲我们将整合所有代码,形成完整项目,同时借助AI进行优化和功能扩展。
完成后,你将拥有一个界面美观、功能丰富的专属倒计时器,还能学会用AI优化代码~
第一步:整合前5讲代码。
打开“countdown_timer.py”文件,将前5讲的代码整合完整,确保开始/暂停/继续/重置、结束提示功能正常运行。
家长须知:代码整合的过程,能帮助孩子构建完整的项目思维,理解“模块化开发→整体整合”的流程,契合工程化编程的启蒙理念。
第二步:检查代码完整性。
逐行核对代码,确保导入库、创建主窗口、定义变量和函数、创建界面元素、绑定函数、运行窗口循环等步骤都完整无误,没有语法错误。
第三步:测试完整功能。
运行程序,依次测试所有功能:开始倒计时、暂停、继续、重置、倒计时结束提示,确认所有功能正常运行,界面布局协调。
第四步:记录基础版本代码。
将当前功能完整的代码保存为一个独立的py文件,作为后续优化的基础。
第五步:借助AI优化代码。
根据AI协创空间的提示词,向AI提问,获取优化后的代码(界面美化+自定义时长功能)。
家长须知:这一步能让孩子学会“借助工具提升效率”,理解AI在编程中的辅助作用,培养“人机协作”的核心素养。
第六步:运行优化后代码。
将AI生成的优化代码复制到编辑器中,运行测试,查看界面美化效果和自定义时长功能是否正常。
# 导入tkinter库,简化为tkimport tkinter as tkfrom tkinter import messagebox# 创建主窗口对象root = tk.Tk()root.title("我的专属倒计时器")root.geometry("350x200")# 美化:添加浅灰色背景root.config(bg="#f0f0f0")# 倒计时初始秒数(60秒)total_seconds = 60# 状态变量:标记倒计时是否运行is_running = False# 存储after方法返回值,用于取消倒计时after_id = None# 时间转换函数:将秒数转为"分:秒"格式(两位数显示)def format_time(seconds): minutes = seconds // 60 seconds = seconds % 60 return f"{minutes:02d}:{seconds:02d}"# 核心倒计时函数def countdown(): global total_seconds, after_id if total_seconds > 0: total_seconds -= 1 time_label.config(text=f"倒计时: {format_time(total_seconds)}") after_id = root.after(1000, countdown) else: time_label.config(text="时间到!") # 新增:弹出提示框 messagebox.showinfo("提示", "倒计时结束啦!")# 开始/暂停/继续切换函数def toggle_start_pause(): global is_running, after_id if not is_running: is_running = True countdown() start_btn.config(text="暂停", bg="#ffcccb") else: is_running = False if after_id: root.after_cancel(after_id) start_btn.config(text="继续", bg="#ccffcc")# 重置函数:恢复初始状态def reset_timer(): global total_seconds, is_running, after_id is_running = False if after_id: root.after_cancel(after_id) after_id = None total_seconds = 60 time_label.config(text=f"倒计时: {format_time(total_seconds)}") start_btn.config(text="开始", bg="#ffffff")# 新增:自定义时长函数def set_custom_time(): global total_seconds try: # 获取输入框内容 custom_time = int(time_entry.get()) if 1 <= custom_time <= 300: total_seconds = custom_time time_label.config(text=f"倒计时: {format_time(total_seconds)}") messagebox.showinfo("成功", f"已设置倒计时{custom_time}秒!") else: messagebox.showerror("错误", "请输入1-300之间的整数!") except ValueError: messagebox.showerror("错误", "请输入有效的整数!")# 创建时间标签(美化:添加边框)time_label = tk.Label(root, text=f"倒计时: {format_time(total_seconds)}", font=("Arial", 24), bg="#41de22", bd=1, relief="groove")time_label.pack(pady=20)# 新增:自定义时长输入框和按钮custom_frame = tk.Frame(root, bg="#f0f0f0")custom_frame.pack(pady=5)time_entry = tk.Entry(custom_frame, width=10)time_entry.pack(side=tk.LEFT, padx=5)set_btn = tk.Button(custom_frame, text="设置时长", font=("Arial", 12, "bold"), command=set_custom_time, bg="#f7176d", fg="#f8e40e")set_btn.pack(side=tk.LEFT)# 创建按钮容器btn_frame = tk.Frame(root, bg="#f0f0f0")btn_frame.pack(side=tk.BOTTOM, pady=10)# 创建按钮并美化(点击变色)start_btn = tk.Button(btn_frame, text="开始", command=toggle_start_pause, bg="#ffffff")reset_btn = tk.Button(btn_frame, text="重置", command=reset_timer, bg="#ffffff")# 按钮网格布局start_btn.grid(row=0, column=0, padx=20)reset_btn.grid(row=0, column=1, padx=20)# 运行窗口循环root.mainloop()
经过AI优化后,我们的倒计时器已经很完善了,但还可以进一步个性化。
可以请AI帮忙扩展两个方向:
一是给倒计时器添加音效(开始、暂停、结束时播放不同音效);
二是支持倒计时皮肤切换(如浅色/深色皮肤),让你的专属倒计时器更有特色。
“我有一个Python tkinter倒计时器,已经实现了开始/暂停/继续/重置、自定义时长、界面美化功能。
请帮我再添加两个功能:
1. 开始倒计时播放提示音,暂停播放暂停音,结束播放结束音;
2. 支持浅色/深色皮肤切换,添加一个切换按钮。
请给出完整代码,并说明音效文件的准备和使用方法。”
同学们,恭喜你完成了整个倒计时器项目!
从零基础搭建窗口,到一步步实现功能,再到借助AI优化扩展,你已经成长为一名能驾驭AI的小程序员啦!
未来编程路上,遇到任何问题、有任何创意,都可以大胆地找AI帮忙,记住,你是编程的主人,AI是你的辅助伙伴和创意助手,勇敢探索,你会收获更多惊喜~
这一节课我们不仅完成了整个倒计时器项目的整合与AI优化,更重要的是掌握了“项目整体梳理”和“人机协作编程”的核心能力。
通过整合前5讲的知识,我们构建了完整的项目思维;
通过借助AI优化界面、扩展功能,我们理解了AI在编程中的辅助价值,学会了“主动思考+清晰指令+AI辅助”的高效编程模式。
整个系列课程中,我们不仅学会了Python GUI编程的核心技能,更锻炼了逻辑思维、问题解决能力、调试能力和用户体验意识,这些能力将伴随你未来的学习和成长,愿你一直保持对编程的热爱,用AI驾驭未来~
数程思维派|专业创造未来
秦老师,211高校计算机专业全日制硕士研究生学历,学信网可查。蓝桥STEM优秀指导教师(证书编号:STEMA160529),拥有多年青少年科技教育一线教学经验,学生曾多次在各类权威科技竞赛中斩获优异成绩。覆盖Scratch/Python/C++编程学习全阶段,接轨CCF/CIE考级竞赛,从基础入门到赛事冲刺,为孩子提供持续、系统的专业指导。线下教学基地:南京市江宁区上元大街恒通大厦(江宁万达旁,地铁5号线直达)
数程小达人、AI驾驭者、赛考科学家,拒绝千篇一律的统一课程,对孩子因材施教,让孩子学有所得。若需了解课程详情,可通过微信扫描二维码添加秦老师,添加成功后即可立即享受价值超千元的课程专属优惠。
👇