答案是做一个支持计时、暂停和分段记录的Python秒表程序。先用time模块获取时间差实现基础计时,再通过循环与实时刷新提升交互体验,最后扩展功能支持圈数记录与用户指令响应,逐步掌握编程核心技巧。

想用Python写一个实用又有趣的程序?做个秒表是个不错的起点。它不复杂,但能帮你掌握时间处理、循环控制和用户交互等核心编程技巧。下面带你一步步实现一个功能完整的秒表程序。
1. 基础结构:用time模块计时
Python的time模块提供了获取当前时间的功能,适合做秒表的基础。我们用time.time()记录起始和结束时刻,相减得到经过的时间。
示例代码:
import timeprint("按回车开始,再按回车停止") input() # 等待开始 start_time = time.time() print("计时开始...") input() # 等待停止 end_time = time.time()
elapsed = end_time - start_time print(f"经过时间: {elapsed:.2f} 秒")
2. 提升体验:实时显示计时
真正的秒表应该持续刷新当前耗时。我们可以用一个循环不断计算并打印时间,直到用户按下停止指令。
立即学习“Python免费学习笔记(深入)”;
关键点:
Hishop.5.2.BETA2版主要更新: [修改] 进一步优化了首页打开速度 [修改] 美化了默认模板 [修改] 优化系统架构,程序标签及SQL查询效率,访问系统页面的速度大大提高 [修改] 采用了HTML模板机制,实现了前台模板可视化编辑,降低模板制作与修改的难度. [修改] 全新更换前后台AJAX技术框架,提升了用户操作体验. 店铺管理 [新增] 整合TQ在线客服 [修改] 后台广告位增加
- 使用try-except捕获键盘中断(如Ctrl+C)或输入信号
- 用time.sleep(0.1)避免过度占用CPU
- 每0.1秒刷新一次显示,看起来更平滑
import timedef run_stopwatch(): print("按回车开始,Ctrl+C 停止") input() start_time = time.time() print("计时中...")
try: while True: current = time.time() - start_time print(f"\r已运行: {current:.2f} 秒", end="") time.sleep(0.1) except KeyboardInterrupt: print(f"\n停止,总时间: {current:.2f} 秒")3. 完整功能:支持暂停与多段计时
进阶版可以加入“暂停”和“分段时间”功能,类似运动秒表。我们需要跟踪多个状态:是否正在运行、累计时间、暂停次数等。
思路:
- 用布尔变量running判断是否在计时
- 每次按空格记录一段 lap 时间
- 按s键保存lap,按q退出
import timedef advanced_stopwatch(): print("开始计时 (按 Enter)") input() start_time = last_lap = time.time() lap_num = 1 print("计时中... 按 Enter 记录圈数,输入 q 后回车退出")
while True: cmd = input().strip().lower() if cmd == "": lap_time = time.time() - last_lap total = time.time() - start_time print(f"圈 {lap_num}: {lap_time:.2f} 秒 (总计: {total:.2f})") last_lap = time.time() lap_num += 1 elif cmd == "q": total = time.time() - start_time print(f"计时结束,总耗时: {total:.2f} 秒") break基本上就这些。你可以从最简单的版本开始,逐步添加功能。关键是理解时间差的计算逻辑和用户输入的响应方式。自己动手改一改,比如加上毫秒精度、格式化输出成“分:秒”样式,会让这个小项目更有成就感。









