我有一些代码,我想对其进行一些故障排除

  • 本文关键字:排除 故障 代码 python
  • 更新时间 :
  • 英文 :


我的计时器无法正常工作,因为它永远保持打印,而不是我想要的。

我已经尝试过以多种方式重新组织脚本,但结果总是相同的。

import time
CommandInput = input()
#execution [uptime]
def uptime(y):
while 1 == 1:
if (CommandInput == "uptime"):
print(y, " seconds")
y = y + 1
time.sleep(1)

uptime(9)

我想制作某种"后台计时器",从脚本执行到关闭时一直运行,如果我在输入中键入某一行,它将显示它所在的当前数字。问题是它永远打印计时器,对于它计算的每个数字。我想做一个一次性的事情,你可以尽可能多地等待并输入输入,这将显示计时器所在的数字。

您当前的程序必须等待input()完成。编译器不会越过第二行,直到用户按 Enter 键。因此,一旦输入完成,函数就会启动。

此计时器可以通过多种方式完成,例如线程或计时器。这里和这里有一些这样的例子。对于线程,您需要一个进程用于用户输入,一个进程用于计时器。但更好、更简单的方法是使用计时器并存储当前时间。我相信下面的代码与你想要的有些相似:

import time
start_time = time.time()
def get_time():
current_time = time.time()
total = current_time - start_time
return total
while True:
CommandInput = input()
if CommandInput == "uptime":
y = get_time()
print(str(round(y)) + " seconds")

变量 start_time 记录开始时的当前时间。 time.time() 获取计算机上的当前时间(以秒为单位)。get_time函数在输入后调用,并通过减去当前时间减去开始时间来查看粘贴了多少时间。这样你就不需要多个循环。

while True 循环只是等待用户输入,然后打印时间。然后重复此操作,直到程序退出。

要编写这样的脚本,您需要研究一个名为asyncio(https://docs.python.org/3/library/asyncio.html)的模块,该模块允许您同时运行多个内容。

这是一个异步的你好世界:

import asyncio
async def main():
print('Hello ...')
await asyncio.sleep(1)
print('... World!')
# Python 3.7+
asyncio.run(main())

最新更新