在Python中制作一个秒表程序并不复杂,核心思路是使用time模块获取当前时间戳,在用户开始和停止时分别记录时间,再求出两者之差。下面我们一步步实现一个可以在命令行运行的秒表。

一、准备工作
Python自带time模块,不需要额外安装库。我们主要用到time.time()函数,它返回从纪元开始的浮点秒数。
二、基础版秒表代码
下面是一个最简单的文本界面秒表,按回车开始,再按回车停止并打印用时:
import time
def simple_stopwatch():
# 等待用户按回车开始
input("按回车键开始计时...")
start = time.time()
input("再次按回车键停止计时...")
end = time.time()
elapsed = end - start
print("总共用时: " + str(round(elapsed, 2)) + " 秒")
simple_stopwatch()
三、带暂停和重置功能的版本
实际使用中,我们往往希望秒表能暂停、继续和重置。可以用一个循环配合用户输入指令来实现。
import time
def stopwatch():
start = 0.0
elapsed = 0.0
running = False
while True:
cmd = input("输入 start 开始/继续, stop 暂停, reset 重置, quit 退出: ")
if cmd == "start":
if not running:
start = time.time()
running = True
elif cmd == "stop":
if running:
elapsed += time.time() - start
running = False
elif cmd == "reset":
start = 0.0
elapsed = 0.0
running = False
print("已重置")
elif cmd == "quit":
break
else:
print("未知指令")
if running:
current = elapsed + (time.time() - start)
else:
current = elapsed
print("当前计时: " + str(round(current, 2)) + " 秒")
stopwatch()
四、关键知识点说明
time.time()获取时间戳,类型为浮点数,适合做差值运算。- 用
running变量标记状态,避免重复开始导致计时不准确。 - 暂停时先把已跑时间累加到
elapsed,再清空本次起点。
五、进一步扩展
如果你不想只用黑窗口,可以用tkinter做图形界面,或者用网页前端加Python后端做成在线秒表。逻辑都是一样的,只是把输入和输出换成控件事件。
小提示:在Linux或Mac终端中,浮点精度足够日常计时;若需要更高精度可使用time.perf_counter()。使用perf_counter的片段
import time
t0 = time.perf_counter()
# 模拟工作
time.sleep(1.2)
t1 = time.perf_counter()
print("perf_counter用时:", t1 - t0)
通过这个实战,你不但学会了写秒表,还熟悉了Python时间函数和交互循环,之后写其他小工具也会更顺手。
Python秒表程序time_module修改时间:2026-07-26 22:51:30