我正在尝试制作一个计时器(Python 3.6.0)。我知道还有其他帖子更简单的计时器,但我想制作一个更复杂的计时器。这是我的代码:
import time
x = 0
run = input("Start timer? [Y]/[N]")
while run == 'Y':
time.sleep(1)
x += 1
print(x)
else:
print("end of code")
有没有办法在程序运行时打破while循环(以便计时器可以停止)?如果我在“x + = 1”行下面放入“in = input()”以便用户可以停止循环,则计时器停止计数,因为用户必须每秒提供输入。如果我在没有任何输入的情况下运行上面的代码,我就无法在Python Shell中输入任何内容,因为循环继续。有没有办法解决这个问题?
答案 0 :(得分:0)
正如评论中所讨论的,这样的事情可能适合您。我不太确定在等待input
时计时器应该做什么,但也许这样的事情会有所帮助。
import time
start_timer = input('Do you want to start the timer? Y / N: ')
if start_timer.lower() == 'y':
print('Type N or n to break the loop')
start = time.time()
while start_timer.lower() != 'n':
start_timer = input()
end = time.time()
print('Total loop time: {}'.format(end - start))
else:
print('Ok, ending')
编辑:
打破while
循环的唯一方法是键入N
或n
(使用.lower()
会将输入转换为n
(如果是N
)。在进入循环之前记录系统时间。然后,用户可以根据需要键入他们想要的任何内容,但n
除外。然后键入n
将中断循环,再次获取系统时间,并显示开始和结束时间之间的差异。不需要运行计时器,只需要"之前和之后"倍。