python编程实战:制作秒表程序

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

想用Python写一个实用又有趣的程序?做个秒表是个不错的起点。它不复杂,但能帮你掌握时间处理、循环控制和用户交互等核心编程技巧。下面带你一步步实现一个功能完整的秒表程序。

1. 基础结构:用time模块计时

Python的time模块提供了获取当前时间的功能,适合做秒表的基础。我们用time.time()记录起始和结束时刻,相减得到经过的时间。

示例代码:

import time

print("按回车开始,再按回车停止") input() # 等待开始 start_time = time.time() print("计时开始...") input() # 等待停止 end_time = time.time()

elapsed = end_time - start_time print(f"经过时间: {elapsed:.2f} 秒")

2. 提升体验:实时显示计时

真正的秒表应该持续刷新当前耗时。我们可以用一个循环不断计算并打印时间,直到用户按下停止指令。

关键点:

  • 使用try-except捕获键盘中断(如Ctrl+C)或输入信号
  • time.sleep(0.1)避免过度占用CPU
  • 每0.1秒刷新一次显示,看起来更平滑

import time

def 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 time

def 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

基本上就这些。你可以从最简单的版本开始,逐步添加功能。关键是理解时间差的计算逻辑和用户输入的响应方式。自己动手改一改,比如加上毫秒精度、格式化输出成“分:秒”样式,会让这个小项目更有成就感。