在Python中制作计时器可以通过多种方式实现,以下是几种常见的方法:
方法一:使用`time`模块
```python
import time
def timer_example():
start_time = time.time() 开始计时
要执行的代码
time_end = time.time() 结束计时
elapsed_time = time_end - start_time 运行所花时间
print(f'Time cost: {elapsed_time} seconds')
timer_example()
方法二:使用`threading.Timer`
```python
import threading
def do_something():
print(time.time(), '定时时间到,执行特定任务')
启动定时器2秒钟后调用函数
timer = threading.Timer(2.0, do_something)
timer.start()
方法三:使用`timeit`模块
```python
from timeit import timeit
def func():
s = 0
for i in range(1000):
s += i
print(s)
测试函数运行时间
time_taken = timeit(func, number=1000)
print(f'Time taken: {time_taken} seconds')
方法四:自定义计时器类
```python
import time
class Timer:
def __init__(self, func=time.perf_counter):
self.elapsed = 0.0
self._func = func
self._start = None
def start(self):
if self._start is not None:
raise RuntimeError('Already started')
self._start = self._func()
def stop(self):
if self._start is None:
raise RuntimeError('Not started')
end = self._func()
self.elapsed = end - self._start
self._start = None
def reset(self):
self.elapsed = 0.0
@property
def running(self):
return self._start is not None
def __enter__(self):
self.start()
return self
def __exit__(self, *args):
self.stop()
使用自定义计时器
with Timer() as t:
要执行的代码
pass
print(f'Elapsed time: {t.elapsed} seconds')
方法五:使用`schedule`库
```python
from schedule import Schedule
import time
def job():
print("I'm working...")
每隔10秒执行一次job函数
Schedule().every(10).seconds.do(job)
while True:
Schedule.run_pending()
time.sleep(1)
以上是几种在Python中制作计时器的方法,您可以根据自己的需求选择合适的方法。如果您需要更复杂的计时器功能,比如倒计时、自定义格式输出等,可以进一步扩展上述代码。
您我很乐意继续帮助您