python简单实现秒表计时功能
前景提要
前景提要部分介绍实现秒表功能时会用到的一些方法以及可能遇到的问题。
round()用于返回浮点数的四舍五入值,第一个参数是目标值,第二个参数是精度,没有的话默认四舍五入到整数,得到的数据类型是int;当第二个参数是0,虽然四舍五入到整数,但依旧会保留一位小数,得到的数据类型是float
except KeyboardInterrupt: # 键盘输入ctrl+c没有生效
在pycharm中运行程序与正常运行不太一样,特别是在处理键盘字符方面。按ctrl-c的方式,pycharm认为您想要复制文本。python程序永远看不到字符。想要让运行中的pycharm接收键盘输入,需要开启模拟终端模式。
具体步骤如下:
在 PyCharm 中打开“Run/Debug Configurations”。

勾选下方红框,使得pycharm在输出控制台中模拟终端,从而可以接受键盘中断(确保控制台处于焦点状态)。
下图中的热点代表的就是控制台可以处于焦点状态。

\r用于将光标退回到开始位置,不会进行删除只会进行覆盖。print语句中\r和end=""结合使用可以对计时效果进行优化。
实现秒表功能
# 实现秒表功能
import time
input('点击enter键开始计时,点击ctrl+c停止计时')
start_time = time.time() # 获取当前时间
try:
while True:
print(round(time.time() - start_time, 0), '秒') # round()方法用于四舍五入,第二个参数没有传,默认四舍五入到整数
time.sleep(1) # 停顿1秒
except KeyboardInterrupt: # 当键盘输入ctrl+c会触发异常
print('总共耗时:', round(time.time() - start_time, 2), 'sec') # round()方法第二个参数传2表示四舍五入到两位小数

实现秒表功能优化
# 策略1
import time
input('点击enter键开始计时')
start_time = time.time()
while True:
print('\r%.f秒'%(round(time.time() - start_time, 0)), end="") # 优化后的语句
time.sleep(1)
# 策略2
import time
input('点击enter键开始计时')
start_time = time.time()
while True:
print('\r'+str(round(time.time() - start_time))+'秒', end="") # 优化后的语句
time.sleep(1)
实现结果如下:

注意点:
策略1和策略2当输出控制台处于模拟终端的情况下无法产生上面的效果。所以效果虽然优化了但无法用ctrl+c停止计时。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Paddle模型性能分析工具Profiler定位瓶颈点优化程序详解
这篇文章主要为大家介绍了Paddle模型性能分析工具Profiler定位瓶颈点优化程序详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-03-03
Django零基础入门之运行Django版的hello world
这篇文章主要介绍了Django零基础入门之运行Django版的hello world,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-09-09
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
这篇文章主要介绍了pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-02-02


最新评论