How can I theoretically program a stopwatch?
这是我在stackoverflow.com上的第一个问题,所以请对我宽容:)我有一个问题,我如何理论上创建一个秒表程序。 这对我来说无关紧要。这在理论上是否可以?
1 2 3 4 5 | a = 0 While 1 == 1: Print(a) Sleep(1s) a = a+1 |
这对我来说应该没问题,但是当在Python中运行类似的东西时,它并不能准确地打印出来。 使用我的"真实"模拟秒表进行测量,有时不到1秒,有时超过1秒。 我想知道的是如何理论上只创建一个秒表,我不需要实际的代码。 我希望你理解我的问题,等待回复:)
看看这个:秒表在Python中
所以,回答你的问题:是的,这是可能的。
至于原始代码的准确性:python的time.sleep()有多准确?
幸运的是,你的电脑配有一个不会漂移很快的时钟,你可以用它作为秒表。而不是每次睡一秒钟,睡眠时间较短(如百分之一秒)。每次醒来,都要测试当前时间。如果从开始时间开始经过一秒钟,请将其打印出来。
打印以非常规方式发生的原因可能是输出是缓冲的。如果禁用标准输出的缓冲,它应该按预期工作;请参阅禁用输出缓冲。
运行现有脚本时,可以通过向
-u Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, also put stdin, stdout and stderr in
binary mode.
Note that there is internal buffering in xreadlines(), readlines() and file-object iterators ("for line in sys.stdin") which
is not influ‐
enced by this option. To work around this, you will want to use"sys.stdin.readline()" inside a"while 1:" loop.